From: Eduardo Date: Sun, 10 Dec 2023 13:39:45 +0000 (+0100) Subject: first commit X-Git-Url: http://git.edufdez.es/?a=commitdiff_plain;h=16138d54b7ffed626ce9fd8ba8d988e3ade779fb;p=Edus-pomo-can-dispenser.git first commit --- diff --git a/.micropico b/.micropico new file mode 100644 index 0000000..3de3977 --- /dev/null +++ b/.micropico @@ -0,0 +1,3 @@ +{ + "info": "This file is just used to identify a project folder." +} \ No newline at end of file diff --git a/.vscode/Pico-W-Stub b/.vscode/Pico-W-Stub new file mode 120000 index 0000000..3f10654 --- /dev/null +++ b/.vscode/Pico-W-Stub @@ -0,0 +1 @@ +/home/eduardo/.config/Code/User/Pico-W-Stub \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..fbc7999 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": [ + "ms-python.python", + "visualstudioexptteam.vscodeintellicode", + "ms-python.vscode-pylance", + "paulober.pico-w-go" + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..74b5e94 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "python.linting.enabled": true, + "python.languageServer": "Pylance", + "python.analysis.typeCheckingMode": "basic", + "python.analysis.diagnosticSeverityOverrides": { + "reportMissingModuleSource": "none" + }, + "micropico.syncFolder": "", + "micropico.openOnStart": true, + "python.analysis.typeshedPaths": [ + ".vscode/Pico-W-Stub" + ], + "python.analysis.extraPaths": [ + ".vscode/Pico-W-Stub" + ], + "python.analysis.autoImportCompletions": true, + "cmake.configureOnOpen": false +} \ No newline at end of file diff --git a/ili9341/LICENSE b/ili9341/LICENSE new file mode 100644 index 0000000..81f990d --- /dev/null +++ b/ili9341/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 + +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/ili9341/README.md b/ili9341/README.md new file mode 100644 index 0000000..528b895 --- /dev/null +++ b/ili9341/README.md @@ -0,0 +1,8 @@ +# micropython-ili9341 +MicroPython ILI9341 Display and XPT2046 Touch Screen Drivers + +Full write up on my website [Rototron](https://www.rototron.info/projects/esp32-pwned-password-checker/) or click picture below for a YouTube video: + +[![ILI9341 Tutorial](https://img.youtube.com/vi/NJuOkSSfgUQ/sddefault.jpg)](https://youtu.be/NJuOkSSfgUQ ) + +_Tested on ESP32 (Wemos Lolin32 & Loline32 Pro)_ diff --git a/ili9341/demo_bouncing_boxes.py b/ili9341/demo_bouncing_boxes.py new file mode 100644 index 0000000..3301703 --- /dev/null +++ b/ili9341/demo_bouncing_boxes.py @@ -0,0 +1,122 @@ +"""ILI9341 demo (bouncing boxes).""" +from machine import Pin, SPI +from random import random, seed, randrange +from ili9341.ili9341 import Display, color565 +from utime import sleep_us, ticks_cpu, ticks_us, ticks_diff + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +class Box(object): + """Bouncing box.""" + + def __init__(self, screen_width, screen_height, size, display, color): + """Initialize box. + + Args: + screen_width (int): Width of screen. + screen_height (int): Width of height. + size (int): Square side length. + display (ILI9341): display object. + color (int): RGB565 color value. + """ + self.size = size + self.w = screen_width + self.h = screen_height + self.display = display + self.color = color + # Generate non-zero random speeds between -5.0 and 5.0 + seed(ticks_cpu()) + r = random() * 10.0 + self.x_speed = 5.0 - r if r < 5.0 else r - 10.0 + r = random() * 10.0 + self.y_speed = 5.0 - r if r < 5.0 else r - 10.0 + + self.x = self.w / 2.0 + self.y = self.h / 2.0 + self.prev_x = self.x + self.prev_y = self.y + + def update_pos(self): + """Update box position and speed.""" + x = self.x + y = self.y + size = self.size + w = self.w + h = self.h + x_speed = abs(self.x_speed) + y_speed = abs(self.y_speed) + self.prev_x = x + self.prev_y = y + + if x + size >= w - x_speed: + self.x_speed = -x_speed + elif x - size <= x_speed + 1: + self.x_speed = x_speed + + if y + size >= h - y_speed: + self.y_speed = -y_speed + elif y - size <= y_speed + 1: + self.y_speed = y_speed + + self.x = x + self.x_speed + self.y = y + self.y_speed + + def draw(self): + """Draw box.""" + x = int(self.x) + y = int(self.y) + size = self.size + prev_x = int(self.prev_x) + prev_y = int(self.prev_y) + self.display.fill_hrect(prev_x - size, + prev_y - size, + size, size, 0) + self.display.fill_hrect(x - size, + y - size, + size, size, self.color) + + +def test(): + """Bouncing box.""" + try: + Pin(TFT_LED_PIN, Pin.OUT).on() + # Baud rate of 40 000 000 seems about the max + spi = SPI( + 0, + baudrate=2_099_999_999, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN)) + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN)) + + display.clear() + + boxes = [Box(245, + 325, + randrange(5, 25), + display, + color565(randrange(0, 255), randrange(0, 255), randrange(0, 255)) + ) for i in range(30)] + + while True: + timer = ticks_us() + for b in boxes: + b.update_pos() + b.draw() + # Attempt to set framerate to 30 FPS + timer_dif = 300 - ticks_diff(ticks_us(), timer) + if timer_dif > 0: + sleep_us(timer_dif) + + except KeyboardInterrupt: + display.cleanup() + + +test() diff --git a/ili9341/demo_circuitpython.py b/ili9341/demo_circuitpython.py new file mode 100644 index 0000000..a68feb5 --- /dev/null +++ b/ili9341/demo_circuitpython.py @@ -0,0 +1,153 @@ +"""ILI9341 demo (CircuitPython Text, Shape & Sprite).""" +import board +from busio import SPI +from digitalio import DigitalInOut +from ili9341 import Display, color565 +from xglcd_font import XglcdFont +from time import monotonic, sleep +from sys import exit, implementation + + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +class BouncingSprite(object): + """Bouncing Sprite.""" + + def __init__(self, path, w, h, screen_width, screen_height, + speed, display): + """Initialize sprite. + + Args: + path (string): Path of sprite image. + w, h (int): Width and height of image. + screen_width (int): Width of screen. + screen_height (int): Width of height. + size (int): Square side length. + speed(int): Initial XY-Speed of sprite. + display (ILI9341): display object. + color (int): RGB565 color value. + """ + self.buf = display.load_sprite(path, w, h) + self.w = w + self.h = h + self.screen_width = screen_width + self.screen_height = screen_height + self.display = display + self.x_speed = speed + self.y_speed = speed + self.x = self.screen_width // 2 + self.y = self.screen_height // 2 + self.prev_x = self.x + self.prev_y = self.y + + def update_pos(self): + """Update sprite speed and position.""" + x = self.x + y = self.y + w = self.w + h = self.h + x_speed = abs(self.x_speed) + y_speed = abs(self.y_speed) + + if x + w + x_speed >= self.screen_width: + self.x_speed = -x_speed + elif x - x_speed < 0: + self.x_speed = x_speed + + if y + h + y_speed >= self.screen_height: + self.y_speed = -y_speed + elif y - y_speed <= 20: + self.y_speed = y_speed + + self.prev_x = x + self.prev_y = y + + self.x = x + self.x_speed + self.y = y + self.y_speed + + def draw(self): + """Draw sprite.""" + x = self.x + y = self.y + prev_x = self.prev_x + prev_y = self.prev_y + w = self.w + h = self.h + x_speed = abs(self.x_speed) + y_speed = abs(self.y_speed) + + # Determine direction and remove previous portion of sprite + if prev_x > x: + # Left + self.display.fill_vrect(x + w, prev_y, x_speed, h, 0) + elif prev_x < x: + # Right + self.display.fill_vrect(x - x_speed, prev_y, x_speed, h, 0) + if prev_y > y: + # Upward + self.display.fill_vrect(prev_x, y + h, w, y_speed, 0) + elif prev_y < y: + # Downward + self.display.fill_vrect(prev_x, y - y_speed, w, y_speed, 0) + + self.display.draw_sprite(self.buf, x, y, w, h) + + +def test(): + """CircuitPython Text, Shape & Sprite""" + if implementation.name != 'circuitpython': + print() + print('This demo is for CircuitPython only!') + exit() + try: + # Configuratoin for CS and DC pins: + cs_pin = DigitalInOut(board.P0_15) + dc_pin = DigitalInOut(board.P0_17) + rst_pin = DigitalInOut(board.P0_20) + + # Setup SPI bus using hardware SPI: + spi = SPI(clock=board.P0_24, MOSI=board.P0_22) + + # Create the ILI9341 display: + display = Display(spi, dc=dc_pin, cs=cs_pin, rst=rst_pin) + display.clear() + + # Load Fixed Font + fixed = XglcdFont('fonts/FixedFont5x8.c', 5, 8, letter_count=96) + + # Title + WIDTH = 128 + text = 'CircuitPython Demo' + # Measure text and center + length = fixed.measure_text(text) + x = int((WIDTH / 2) - (length / 2)) + display.draw_text(x, 6, text, fixed, color565(255, 255, 0)) + + # Draw title outline + display.draw_rectangle(0, 0, 127, 20, color565(0, 255, 0)) + + # Load sprite + logo = BouncingSprite('images/blinka45x48.raw', + 45, 48, 239, 319, 1, display) + + while True: + timer = monotonic() + logo.update_pos() + logo.draw() + # Attempt to set framerate to 30 FPS + timer_dif = .033333333 - (monotonic() - timer) + if timer_dif > 0: + sleep(timer_dif) + + except KeyboardInterrupt: + display.cleanup() + + +test() diff --git a/ili9341/demo_clear.py b/ili9341/demo_clear.py new file mode 100644 index 0000000..a3eb8b0 --- /dev/null +++ b/ili9341/demo_clear.py @@ -0,0 +1,76 @@ +"""ILI9341 demo (clear).""" +from time import sleep, ticks_ms +from ili9341.ili9341 import Display, color565 +from machine import Pin, SPI +import gc + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +valid_hlines = [1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 160] + +colors = { + "RED": (255, 0, 0), + "GREEN": (0, 255, 0), + "BLUE": (0, 0, 255), + "YELLOW": (255, 255, 0), + "AQUA": (0, 255, 255), + "MAROON": (128, 0, 0), + "DARKGREEN": (0, 128, 0), + "NAVY": (0, 0, 128), + "TEAL": (0, 128, 128), + "PURPLE": (128, 0, 128), + "ORANGE": (255, 128, 0), + "DEEP_PINK": (255, 0, 128), + "CYAN": (128, 255, 255), +} + +def test(): + """Test code.""" + # Baud rate of 40000000 seems about the max + spi = SPI( + 0, + baudrate=125_000_000, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN)) + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN)) + + + print('Clearing to black...') + start = ticks_ms() + display.clear() + end = ticks_ms() + print(f'Display cleared in {end - start} ms.') + sleep(2) + + print('Clearing to white...') + start = ticks_ms() + display.clear(color565(255, 255, 255)) + end = ticks_ms() + print(f'Display cleared in {end - start} ms.') + sleep(2) + + for hlines, (color, rgb) in zip(valid_hlines, colors.items()): + gc.collect() + print(f'Clearing display to {color}, hlines={hlines}...') + try: + start = ticks_ms() + display.clear(hlines=hlines, color=color565(*rgb)) + end = ticks_ms() + print(f'Display cleared in {end - start} ms.') + except Exception as e: + print(e) + sleep(1) + + sleep(5) + display.cleanup() + + +test() diff --git a/ili9341/demo_color_palette.py b/ili9341/demo_color_palette.py new file mode 100644 index 0000000..313e85e --- /dev/null +++ b/ili9341/demo_color_palette.py @@ -0,0 +1,74 @@ +"""ILI9341 demo (color palette).""" +from time import sleep +from ili9341.ili9341 import Display, color565 +from machine import Pin, SPI + + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +def hsv_to_rgb(h, s, v): + """ + Convert HSV to RGB (based on colorsys.py). + + Args: + h (float): Hue 0 to 1. + s (float): Saturation 0 to 1. + v (float): Value 0 to 1 (Brightness). + """ + if s == 0.0: + return v, v, v + i = int(h * 6.0) + f = (h * 6.0) - i + p = v * (1.0 - s) + q = v * (1.0 - s * f) + t = v * (1.0 - s * (1.0 - f)) + i = i % 6 + + v = int(v * 255) + t = int(t * 255) + p = int(p * 255) + q = int(q * 255) + + if i == 0: + return v, t, p + if i == 1: + return q, v, p + if i == 2: + return p, v, t + if i == 3: + return p, q, v + if i == 4: + return t, p, v + if i == 5: + return v, p, q + + +def test(): + """Test code.""" + # Baud rate of 40000000 seems about the max + spi = SPI( + 0, + baudrate=2_099_999_999, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN)) + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN)) + + + c = 0 + while True: + for x in range(0, 240, 20): + for y in range(0, 320, 20): + color = color565(*hsv_to_rgb(c / 192, 1, 1)) + display.fill_circle(x + 9, y + 9, 9, color) + c += 1 + display.clear() + +test() diff --git a/ili9341/demo_color_wheel.py b/ili9341/demo_color_wheel.py new file mode 100644 index 0000000..9175931 --- /dev/null +++ b/ili9341/demo_color_wheel.py @@ -0,0 +1,93 @@ +"""ILI9341 demo (color wheel).""" +from time import sleep +from ili9341.ili9341 import Display, color565 +from machine import Pin, SPI +from math import cos, pi, sin + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +HALF_WIDTH = const(120) +HALF_HEIGHT = const(160) +CENTER_X = const(119) +CENTER_Y = const(159) +ANGLE_STEP_SIZE = 0.05 # Decrease step size for higher resolution +PI2 = pi * 2 + + +def hsv_to_rgb(h, s, v): + """ + Convert HSV to RGB (based on colorsys.py). + + Args: + h (float): Hue 0 to 1. + s (float): Saturation 0 to 1. + v (float): Value 0 to 1 (Brightness). + """ + if s == 0.0: + return v, v, v + i = int(h * 6.0) + f = (h * 6.0) - i + p = v * (1.0 - s) + q = v * (1.0 - s * f) + t = v * (1.0 - s * (1.0 - f)) + i = i % 6 + + v = int(v * 255) + t = int(t * 255) + p = int(p * 255) + q = int(q * 255) + + if i == 0: + return v, t, p + if i == 1: + return q, v, p + if i == 2: + return p, v, t + if i == 3: + return p, q, v + if i == 4: + return t, p, v + if i == 5: + return v, p, q + + +def test(): + """Test code.""" + # Baud rate of 40000000 seems about the max + spi = SPI( + 0, + baudrate=2_099_999_999, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN)) + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN)) + + x, y = 0, 0 + angle = 0.0 + # Loop all angles from 0 to 2 * PI radians + while angle < PI2: + # Calculate x, y from a vector with known length and angle + x = int(CENTER_X * sin(angle) + HALF_WIDTH) + y = int(CENTER_Y * cos(angle) + HALF_HEIGHT) + color = color565(*hsv_to_rgb(angle / PI2, 1, 1)) + display.draw_line(x, y, CENTER_X, CENTER_Y, color) + angle += ANGLE_STEP_SIZE + + sleep(5) + + for r in range(CENTER_X, 0, -1): + color = color565(*hsv_to_rgb(r / HALF_WIDTH, 1, 1)) + display.fill_circle(CENTER_X, CENTER_Y, r, color) + + sleep(9) + display.cleanup() + + +test() diff --git a/ili9341/demo_colored_squares.py b/ili9341/demo_colored_squares.py new file mode 100644 index 0000000..27374c7 --- /dev/null +++ b/ili9341/demo_colored_squares.py @@ -0,0 +1,68 @@ +"""ILI9341 demo (colored squares).""" +from time import sleep +from ili9341 import Display +from machine import Pin, SPI +from sys import modules + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +RED = const(0XF800) # (255, 0, 0) +GREEN = const(0X07E0) # (0, 255, 0) +BLUE = const(0X001F) # (0, 0, 255) +YELLOW = const(0XFFE0) # (255, 255, 0) +FUCHSIA = const(0XF81F) # (255, 0, 255) +AQUA = const(0X07FF) # (0, 255, 255) +MAROON = const(0X8000) # (128, 0, 0) +DARKGREEN = const(0X0400) # (0, 128, 0) +NAVY = const(0X0010) # (0, 0, 128) +TEAL = const(0X0410) # (0, 128, 128) +PURPLE = const(0X8010) # (128, 0, 128) +OLIVE = const(0X8400) # (128, 128, 0) +ORANGE = const(0XFC00) # (255, 128, 0) +DEEP_PINK = const(0XF810) # (255, 0, 128) +CHARTREUSE = const(0X87E0) # (128, 255, 0) +SPRING_GREEN = const(0X07F0) # (0, 255, 128) +INDIGO = const(0X801F) # (128, 0, 255) +DODGER_BLUE = const(0X041F) # (0, 128, 255) +CYAN = const(0X87FF) # (128, 255, 255) +PINK = const(0XFC1F) # (255, 128, 255) +LIGHT_YELLOW = const(0XFFF0) # (255, 255, 128) +LIGHT_CORAL = const(0XFC10) # (255, 128, 128) +LIGHT_GREEN = const(0X87F0) # (128, 255, 128) +LIGHT_SLATE_BLUE = const(0X841F) # (128, 128, 255) +WHITE = const(0XFFF) # (255, 255, 255) + + +def test(): + """Test code.""" + # Baud rate of 40000000 seems about the max + spi = SPI( + 0, + baudrate=125_000_000, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN)) + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN)) + + # Build color list from all upper case constants (lazy approach) + colors = [getattr(modules[__name__], name) for name in dir( + modules[__name__]) if name.isupper() and name is not 'SPI'] + + colors.sort() + c = 0 + for x in range(0, 240, 48): + for y in range(0, 320, 64): + display.fill_rectangle(x, y, 47, 63, colors[c]) + c += 1 + sleep(9) + display.cleanup() + + +test() diff --git a/ili9341/demo_fonts.py b/ili9341/demo_fonts.py new file mode 100644 index 0000000..20cc89e --- /dev/null +++ b/ili9341/demo_fonts.py @@ -0,0 +1,114 @@ +"""ILI9341 demo (fonts).""" +from time import sleep +from ili9341 import Display, color565 +from machine import Pin, SPI +from xglcd_font import XglcdFont + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +def test(): + """Test code.""" + # Baud rate of 40000000 seems about the max + spi = SPI( + 0, + baudrate=125_000_000, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN)) + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN)) + + print('Loading fonts...') + print('Loading arcadepix') + arcadepix = XglcdFont('fonts/ArcadePix9x11.c', 9, 11) + print('Loading bally') + bally = XglcdFont('fonts/Bally7x9.c', 7, 9) + print('Loading broadway') + broadway = XglcdFont('fonts/Broadway17x15.c', 17, 15) + print('Loading espresso_dolce') + espresso_dolce = XglcdFont('fonts/EspressoDolce18x24.c', 18, 24) + print('Loading fixed_font') + fixed_font = XglcdFont('fonts/FixedFont5x8.c', 5, 8) + print('Loading neato') + neato = XglcdFont('fonts/Neato5x7.c', 5, 7, letter_count=223) + print('Loading robotron') + robotron = XglcdFont('fonts/Robotron13x21.c', 13, 21) + print('Loading unispace') + unispace = XglcdFont('fonts/Unispace12x24.c', 12, 24) + print('Loading wendy') + wendy = XglcdFont('fonts/Wendy7x8.c', 7, 8) + print('Fonts loaded.') + + display.draw_text(0, 0, 'Arcade Pix 9x11', arcadepix, color565(255, 0, 0)) + display.draw_text(0, 22, 'Bally 7x9', bally, color565(0, 255, 0)) + display.draw_text(0, 43, 'Broadway 17x15', broadway, color565(0, 0, 255)) + display.draw_text(0, 66, 'Espresso Dolce 18x24', espresso_dolce, + color565(0, 255, 255)) + display.draw_text(0, 104, 'Fixed Font 5x8', fixed_font, + color565(255, 0, 255)) + display.draw_text(0, 125, 'Neato 5x7', neato, color565(255, 255, 0)) + display.draw_text(0, 155, 'ROBOTRON 13X21', robotron, + color565(255, 255, 255)) + display.draw_text(0, 190, 'Unispace 12x24', unispace, + color565(255, 128, 0)) + display.draw_text(0, 220, 'Wendy 7x8', wendy, color565(255, 0, 128)) + + sleep(9) + display.clear() + + display.draw_text(0, 255, 'Arcade Pix 9x11', arcadepix, + color565(255, 0, 0), + landscape=True) + display.draw_text(22, 255, 'Bally 7x9', bally, color565(0, 255, 0), + landscape=True) + display.draw_text(43, 255, 'Broadway 17x15', broadway, color565(0, 0, 255), + landscape=True) + display.draw_text(66, 255, 'Espresso Dolce 18x24', espresso_dolce, + color565(0, 255, 255), landscape=True) + display.draw_text(104, 255, 'Fixed Font 5x8', fixed_font, + color565(255, 0, 255), landscape=True) + display.draw_text(125, 255, 'Neato 5x7', neato, color565(255, 255, 0), + landscape=True) + display.draw_text(155, 255, 'ROBOTRON 13X21', robotron, + color565(255, 255, 255), + landscape=True) + display.draw_text(190, 255, 'Unispace 12x24', unispace, + color565(255, 128, 0), + landscape=True) + display.draw_text(220, 255, 'Wendy 7x8', wendy, color565(255, 0, 128), + landscape=True) + + sleep(9) + display.clear() + + display.draw_text(0, 0, 'Arcade Pix 9x11', arcadepix, color565(255, 0, 0), + background=color565(0, 255, 255)) + display.draw_text(0, 22, 'Bally 7x9', bally, color565(0, 255, 0), + background=color565(0, 0, 128)) + display.draw_text(0, 43, 'Broadway', broadway, color565(0, 0, 255), + background=color565(255, 255, 0)) + display.draw_text(0, 66, 'Espresso', espresso_dolce, + color565(0, 255, 255), background=color565(255, 0, 0)) + display.draw_text(0, 104, 'Fixed Font 5x8', fixed_font, + color565(255, 0, 255), background=color565(0, 128, 0)) + display.draw_text(0, 125, 'Neato 5x7', neato, color565(255, 255, 0), + background=color565(0, 0, 255)) + display.draw_text(0, 155, 'ROBOTRON 13X21', robotron, + color565(255, 255, 255), + background=color565(128, 128, 128)) + display.draw_text(0, 190, 'Unispace', unispace, color565(255, 128, 0), + background=color565(0, 128, 255)) + display.draw_text(0, 220, 'Wendy 7x8', wendy, color565(255, 0, 128), + background=color565(255, 255, 255)) + + sleep(9) + display.cleanup() + + +test() diff --git a/ili9341/demo_fonts8x8.py b/ili9341/demo_fonts8x8.py new file mode 100644 index 0000000..a71d571 --- /dev/null +++ b/ili9341/demo_fonts8x8.py @@ -0,0 +1,56 @@ +"""ILI9341 demo (fonts 8x8).""" +from time import sleep +from ili9341 import Display, color565 +from machine import Pin, SPI # type: ignore + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +def test(): + """Test code.""" + spi = SPI( + 0, + baudrate=125_000_000, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN)) + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN)) + + x_center = display.width // 2 + y_center = display.height // 2 + + display.draw_text8x8(0, 0, 'Built-in', color565(255, 0, 255)) + display.draw_text8x8(16, 16, 'MicroPython', color565(255, 255, 0)) + display.draw_text8x8(32, 32, '8x8 Font', color565(0, 0, 255)) + + display.draw_text8x8(x_center - 40, 120, "Rotate = 0", + color565(0, 255, 0)) + display.draw_text8x8(0, y_center - 44, "Rotate = 90", + color565(255, 0, 0), rotate=90) + display.draw_text8x8(x_center - 48, display.height - 9, "Rotate = 180", + color565(0, 255, 255), rotate=180) + display.draw_text8x8(display.width - 9, y_center - 48, "Rotate = 270", + color565(255, 255, 255), rotate=270) + + display.draw_text8x8(x_center - 40, 140, "Rotate = 0", + color565(0, 255, 0), background=color565(255, 0, 0)) + display.draw_text8x8(20, y_center - 44, "Rotate = 90", color565(255, 0, 0), + rotate=90, background=color565(0, 255, 0)) + display.draw_text8x8(x_center - 48, display.height - 29, "Rotate = 180", + color565(0, 255, 255), rotate=180, + background=color565(0, 0, 255)) + display.draw_text8x8(display.width - 29, y_center - 48, "Rotate = 270", + color565(255, 255, 255), rotate=270, + background=color565(255, 0, 255)) + + sleep(15) + display.cleanup() + + +test() diff --git a/ili9341/demo_fonts_rotated.py b/ili9341/demo_fonts_rotated.py new file mode 100644 index 0000000..da10dd0 --- /dev/null +++ b/ili9341/demo_fonts_rotated.py @@ -0,0 +1,205 @@ +"""ILI9341 demo (fonts rotated).""" +from time import sleep +from ili9341.ili9341 import Display, color565 +from machine import Pin, SPI +from ili9341.xglcd_font import XglcdFont + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +def test(): + """Test code.""" + # Baud rate of 40000000 seems about the max + spi = SPI( + 0, + baudrate=125_000_000, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN)) + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN)) + + print('Loading fonts...') + print('Loading arcadepix') + arcadepix = XglcdFont('ili9341/fonts/ArcadePix9x11.c', 9, 11) + print('loading espressodolce') + espressodolce = XglcdFont('ili9341/fonts/EspressoDolce18x24.c', 18, 24) + print('Loading neato') + neato = XglcdFont('ili9341/fonts/Neato5x7.c', 5, 7, letter_count=223) + print('Loading robotron') + robotron = XglcdFont('ili9341/fonts/Robotron13x21.c', 13, 21) + print('Loading unispace') + unispace = XglcdFont('ili9341/fonts/Unispace12x24.c', 12, 24) + + # ArcadePix + font_height = arcadepix.height + display.draw_text(0, 0, + 'Portrait', arcadepix, + color565(255, 255, 0), + landscape=False, rotate_180=False) + text_width = arcadepix.measure_text('Landscape') + display.draw_text(0, display.height - 1, + 'Landscape', arcadepix, + color565(255, 0, 0), + landscape=True, rotate_180=False) + text_width = arcadepix.measure_text('Portrait, Rotate 180') + display.draw_text(display.width - text_width - 1, + display.height - font_height, + 'Portrait, Rotate 180', arcadepix, + color565(255, 0, 255), + landscape=False, rotate_180=True) + text_width = arcadepix.measure_text('Landscape, Rotate 180') + display.draw_text(display.width - font_height - 1 , text_width, + 'Landscape, Rotate 180', arcadepix, + color565(0, 0, 255), + landscape=True, rotate_180=True) + sleep(5) + + # Espresso Dolce + display.clear() + font_height = espressodolce.height + display.draw_text(0, 0, + 'PORTRAIT', espressodolce, + color565(255, 255, 0), + landscape=False, rotate_180=False) + text_width = espressodolce.measure_text('LANDSCAPE') + display.draw_text(0, display.height - 1, + 'LANDSCAPE', espressodolce, + color565(255, 0, 0), + landscape=True, rotate_180=False) + text_width = espressodolce.measure_text('PORTRAIT,') + display.draw_text(display.width - text_width - 1, + display.height - font_height, + 'PORTRAIT,', espressodolce, + color565(255, 0, 255), + landscape=False, rotate_180=True) + text_width = espressodolce.measure_text('ROTATE 180') + display.draw_text(display.width - text_width - 1, + display.height - font_height * 2, + 'ROTATE 180', espressodolce, + color565(255, 0, 255), + landscape=False, rotate_180=True) + text_width = espressodolce.measure_text('LANDSCAPE,') + display.draw_text(display.width - font_height - 1 , text_width, + 'LANDSCAPE,', espressodolce, + color565(0, 0, 255), + landscape=True, rotate_180=True) + text_width = espressodolce.measure_text('ROTATE 180') + display.draw_text(display.width - font_height * 2 - 1 , text_width, + 'ROTATE 180', espressodolce, + color565(0, 0, 255), + landscape=True, rotate_180=True) + sleep(5) + + # Neato + display.clear() + font_height = neato.height + display.draw_text(0, 0, + 'Portrait', neato, + color565(255, 255, 0), + landscape=False, rotate_180=False) + text_width = neato.measure_text('Landscape') + display.draw_text(0, display.height - 1, + 'Landscape', neato, + color565(255, 0, 0), + landscape=True, rotate_180=False) + text_width = neato.measure_text('Portrait, Rotate 180') + display.draw_text(display.width - text_width - 1, + display.height - font_height, + 'Portrait, Rotate 180', neato, + color565(255, 0, 255), + landscape=False, rotate_180=True) + text_width = neato.measure_text('Landscape, Rotate 180') + display.draw_text(display.width - font_height - 1 , text_width, + 'Landscape, Rotate 180', neato, + color565(0, 0, 255), + landscape=True, rotate_180=True) + sleep(5) + + # Robotron + display.clear() + font_height = robotron.height + display.draw_text(0, 0, + 'PORTRAIT', robotron, + color565(255, 255, 0), + landscape=False, rotate_180=False) + text_width = robotron.measure_text('LANDSCAPE') + display.draw_text(0, display.height - 1, + 'LANDSCAPE', robotron, + color565(255, 0, 0), + landscape=True, rotate_180=False) + text_width = robotron.measure_text('PORTRAIT,') + display.draw_text(display.width - text_width - 1, + display.height - font_height, + 'PORTRAIT,', robotron, + color565(255, 0, 255), + landscape=False, rotate_180=True) + text_width = robotron.measure_text('ROTATE 180') + display.draw_text(display.width - text_width - 1, + display.height - font_height * 2, + 'ROTATE 180', robotron, + color565(255, 0, 255), + landscape=False, rotate_180=True) + text_width = robotron.measure_text('LANDSCAPE,') + display.draw_text(display.width - font_height - 1 , text_width, + 'LANDSCAPE,', robotron, + color565(0, 0, 255), + landscape=True, rotate_180=True) + text_width = robotron.measure_text('ROTATE 180') + display.draw_text(display.width - font_height * 2 - 1 , text_width, + 'ROTATE 180', robotron, + color565(0, 0, 255), + landscape=True, rotate_180=True) + sleep(5) + + # Unispace + display.clear() + font_height = unispace.height + display.draw_text(0, 0, + 'PORTRAIT', unispace, + color565(255, 255, 0), + background=color565(255, 0, 0), + landscape=False, rotate_180=False) + text_width = unispace.measure_text('LANDSCAPE') + display.draw_text(0, display.height - 1, + 'LANDSCAPE', unispace, + color565(255, 0, 0), + background=color565(255, 255, 0), + landscape=True, rotate_180=False) + text_width = unispace.measure_text('PORTRAIT,') + display.draw_text(display.width - text_width - 1, + display.height - font_height, + 'PORTRAIT,', unispace, + color565(255, 0, 255), + background=color565(0, 255, 0), + landscape=False, rotate_180=True) + text_width = unispace.measure_text('ROTATE 180') + display.draw_text(display.width - text_width - 1, + display.height - font_height * 2, + 'ROTATE 180', unispace, + color565(255, 0, 255), + background=color565(0, 255, 0), + landscape=False, rotate_180=True) + text_width = unispace.measure_text('LANDSCAPE,') + display.draw_text(display.width - font_height - 1 , text_width, + 'LANDSCAPE,', unispace, + color565(0, 0, 255), + background=color565(255, 255, 0), + landscape=True, rotate_180=True) + text_width = unispace.measure_text('ROTATE 180') + display.draw_text(display.width - font_height * 2 - 1 , text_width, + 'ROTATE 180', unispace, + color565(0, 0, 255), + background=color565(255, 255, 0), + landscape=True, rotate_180=True) + + sleep(10) + display.cleanup() + + +test() diff --git a/ili9341/demo_images.py b/ili9341/demo_images.py new file mode 100644 index 0000000..e3ab03c --- /dev/null +++ b/ili9341/demo_images.py @@ -0,0 +1,40 @@ +"""ILI9341 demo (images).""" +from time import sleep +from ili9341.ili9341 import Display +from machine import Pin, SPI + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +def test(): + """Test code.""" + # Baud rate of 40000000 seems about the max + spi = SPI( + 0, + baudrate=125_000_000, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN)) + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN)) + display.clear() + + display.draw_image('ili9341/images/RaspberryPiWB128x128.raw', 0, 0, 128, 128) + + display.draw_image('ili9341/images/MicroPython128x128.raw', 0, 129, 128, 128) + + display.draw_image('ili9341/images/Tabby128x128.raw', 112, 0, 128, 128) + + display.draw_image('ili9341/images/Tortie128x128.raw', 112, 129, 128, 128) + + sleep(90) + + display.cleanup() + + +test() diff --git a/ili9341/demo_orientation.py b/ili9341/demo_orientation.py new file mode 100644 index 0000000..3e399f9 --- /dev/null +++ b/ili9341/demo_orientation.py @@ -0,0 +1,64 @@ +"""ILI9341 demo (orientation).""" +from time import sleep +from ili9341.ili9341 import Display, color565 +from machine import Pin, SPI +from ili9341.xglcd_font import XglcdFont + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +def test(): + """Test code.""" + print('Loading Espresso Dolce font...') + espresso_dolce = XglcdFont('ili9341/fonts/EspressoDolce18x24.c', 18, 24) + print('Font loaded.') + # Baud rate of 40000000 seems about the max + spi = SPI( + 0, + baudrate=125_000_000, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN)) + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN), + width=240, height=320, rotation=0) + display.draw_text(0, 0, 'Espresso Dolce 18x24', espresso_dolce, + color565(0, 255, 255)) + display.draw_text(0, 319, 'Espresso Dolce 18x24', espresso_dolce, + color565(255, 255, 0), landscape=True) + sleep(5) + + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN), + width=320, height=240, rotation=90) + display.draw_text(0, 215, 'Espresso Dolce 18x24', espresso_dolce, + color565(255, 0, 255)) + display.draw_text(295, 239, 'Espresso Dolce 18x24', espresso_dolce, + color565(255, 255, 255), landscape=True) + sleep(5) + + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN), + width=240, height=320, rotation=180) + display.draw_text(0, 0, 'Espresso Dolce 18x24', espresso_dolce, + color565(0, 0, 255)) + display.draw_text(0, 319, 'Espresso Dolce 18x24', espresso_dolce, + color565(255, 0, 0), landscape=True) + sleep(5) + + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN), + width=320, height=240, rotation=270) + display.draw_text(0, 215, 'Espresso Dolce 18x24', espresso_dolce, + color565(225, 0, 128)) + display.draw_text(295, 239, 'Espresso Dolce 18x24', espresso_dolce, + color565(0, 255, 0), landscape=True) + sleep(5) + display.cleanup() + +test() + + + diff --git a/ili9341/demo_scrolling_marquee.py b/ili9341/demo_scrolling_marquee.py new file mode 100644 index 0000000..fcec5d6 --- /dev/null +++ b/ili9341/demo_scrolling_marquee.py @@ -0,0 +1,63 @@ +"""ILI9341 demo (Scrolling Marquee).""" +from ili9341.ili9341 import Display, color565 +from time import sleep +from sys import implementation + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +def test(): + """Scrolling Marquee.""" + try: + # Implementation dependant pin and SPI configuration + if implementation.name == 'circuitpython': + import board + from busio import SPI + from digitalio import DigitalInOut + cs_pin = DigitalInOut(board.P0_15) + dc_pin = DigitalInOut(board.P0_17) + rst_pin = DigitalInOut(board.P0_20) + spi = SPI(clock=board.P0_24, MOSI=board.P0_22) + else: + from machine import Pin, SPI + cs_pin = Pin(TFT_CS_PIN) + dc_pin = Pin(TFT_DC_PIN) + rst_pin = Pin(TFT_RST_PIN) + # Baud rate of 40000000 seems about the max + spi = SPI(0, + baudrate=125_000_000, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN)) + + # Create the ILI9341 display: + display = Display(spi, dc=dc_pin, cs=cs_pin, rst=rst_pin) + display.clear() + + # Draw non-moving circles + display.fill_rectangle(0, 0, 239, 99, color565(27, 72, 156)) + display.fill_rectangle(0, 168, 239, 151, color565(220, 27, 72)) + + # Load Marquee image + display.draw_image('ili9341/images/Rototron128x26.raw', 56, 120, 128, 26) + + # Set up scrolling + display.set_scroll(top=152, bottom=100) + + spectrum = list(range(152, 221)) + list(reversed(range(152, 220))) + while True: + for y in spectrum: + display.scroll(y) + sleep(.1) + + except KeyboardInterrupt: + display.cleanup() + + +test() diff --git a/ili9341/demo_shapes.py b/ili9341/demo_shapes.py new file mode 100644 index 0000000..6e1de72 --- /dev/null +++ b/ili9341/demo_shapes.py @@ -0,0 +1,90 @@ +"""ILI9341 demo (shapes).""" +from time import sleep +from ili9341.ili9341 import Display, color565 +from machine import Pin, SPI + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +def test(): + """Test code.""" + # Baud rate of 40000000 seems about the max + spi = SPI( + 0, + baudrate=125_000_000, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN)) + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN)) + + display.clear(color565(64, 0, 255)) + sleep(1) + + display.clear() + + display.draw_hline(10, 319, 229, color565(255, 0, 255)) + sleep(1) + + display.draw_vline(10, 0, 319, color565(0, 255, 255)) + sleep(1) + + display.fill_hrect(23, 50, 30, 75, color565(255, 255, 255)) + sleep(1) + + display.draw_hline(0, 0, 222, color565(255, 0, 0)) + sleep(1) + + display.draw_line(127, 0, 64, 127, color565(255, 255, 0)) + sleep(2) + + display.clear() + + coords = [[0, 63], [78, 80], [122, 92], [50, 50], [78, 15], [0, 63]] + display.draw_lines(coords, color565(0, 255, 255)) + sleep(1) + + display.clear() + display.fill_polygon(7, 120, 120, 100, color565(0, 255, 0)) + sleep(1) + + display.fill_rectangle(0, 0, 15, 227, color565(255, 0, 0)) + sleep(1) + + display.clear() + + display.fill_rectangle(0, 0, 163, 163, color565(128, 128, 255)) + sleep(1) + + display.draw_rectangle(0, 64, 163, 163, color565(255, 0, 255)) + sleep(1) + + display.fill_rectangle(64, 0, 163, 163, color565(128, 0, 255)) + sleep(1) + + display.draw_polygon(3, 120, 286, 30, color565(0, 64, 255), rotate=15) + sleep(3) + + display.clear() + + display.fill_circle(132, 132, 70, color565(0, 255, 0)) + sleep(1) + + display.draw_circle(132, 96, 70, color565(0, 0, 255)) + sleep(1) + + display.fill_ellipse(96, 96, 30, 16, color565(255, 0, 0)) + sleep(1) + + display.draw_ellipse(96, 256, 16, 30, color565(255, 255, 0)) + + sleep(5) + display.cleanup() + + +test() diff --git a/ili9341/demo_sprite.py b/ili9341/demo_sprite.py new file mode 100644 index 0000000..0d29893 --- /dev/null +++ b/ili9341/demo_sprite.py @@ -0,0 +1,128 @@ +"""ILI9341 demo (bouncing sprite).""" +from ili9341.ili9341 import Display +from machine import Pin, SPI +from utime import sleep_us, ticks_us, ticks_diff + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +class BouncingSprite(object): + """Bouncing Sprite.""" + + def __init__(self, path, w, h, screen_width, screen_height, + speed, display): + """Initialize sprite. + + Args: + path (string): Path of sprite image. + w, h (int): Width and height of image. + screen_width (int): Width of screen. + screen_height (int): Width of height. + size (int): Square side length. + speed(int): Initial XY-Speed of sprite. + display (SSD1351): OLED display object. + color (int): RGB565 color value. + """ + self.buf = display.load_sprite(path, w, h) + self.w = w + self.h = h + self.screen_width = screen_width + self.screen_height = screen_height + self.display = display + self.x_speed = speed + self.y_speed = speed + self.x = self.screen_width // 2 + self.y = self.screen_height // 2 + self.prev_x = self.x + self.prev_y = self.y + + def update_pos(self): + """Update sprite speed and position.""" + x = self.x + y = self.y + w = self.w + h = self.h + x_speed = abs(self.x_speed) + y_speed = abs(self.y_speed) + + if x + w + x_speed >= self.screen_width: + self.x_speed = -x_speed + elif x - x_speed < 0: + self.x_speed = x_speed + + if y + h + y_speed >= self.screen_height: + self.y_speed = -y_speed + elif y - y_speed <= 0: + self.y_speed = y_speed + + self.prev_x = x + self.prev_y = y + + self.x = x + self.x_speed + self.y = y + self.y_speed + + def draw(self): + """Draw sprite.""" + x = self.x + y = self.y + prev_x = self.prev_x + prev_y = self.prev_y + w = self.w + h = self.h + x_speed = abs(self.x_speed) + y_speed = abs(self.y_speed) + + # Determine direction and remove previous portion of sprite + if prev_x > x: + # Left + self.display.fill_vrect(x + w, prev_y, x_speed, h, 0) + elif prev_x < x: + # Right + self.display.fill_vrect(x - x_speed, prev_y, x_speed, h, 0) + if prev_y > y: + # Upward + self.display.fill_vrect(prev_x, y + h, w, y_speed, 0) + elif prev_y < y: + # Downward + self.display.fill_vrect(prev_x, y - y_speed, w, y_speed, 0) + + self.display.draw_sprite(self.buf, x, y, w, h) + + +def test(): + """Bouncing sprite.""" + try: + # Baud rate of 40000000 seems about the max + spi = SPI( + 0, + baudrate=125_000_000, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN)) + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN)) + display.clear() + + # Load sprite + logo = BouncingSprite('ili9341/images/Python41x49.raw', + 41, 49, 240, 320, 1, display) + + while True: + timer = ticks_us() + logo.update_pos() + logo.draw() + # Attempt to set framerate to 30 FPS + timer_dif = 33333 - ticks_diff(ticks_us(), timer) + if timer_dif > 0: + sleep_us(timer_dif) + + except KeyboardInterrupt: + display.cleanup() + + +test() diff --git a/ili9341/demo_touch.py b/ili9341/demo_touch.py new file mode 100644 index 0000000..11b4250 --- /dev/null +++ b/ili9341/demo_touch.py @@ -0,0 +1,77 @@ +"""ILI9341 demo (simple touch demo).""" +from ili9341 import Display, color565 +from xpt2046 import Touch +from machine import idle, Pin, SPI # type: ignore + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +class Demo(object): + """Touchscreen simple demo.""" + CYAN = color565(0, 255, 255) + PURPLE = color565(255, 0, 255) + WHITE = color565(255, 255, 255) + + def __init__(self, display, spi2): + """Initialize box. + + Args: + display (ILI9341): display object + spi2 (SPI): SPI bus + """ + self.display = display + self.touch = Touch(spi2, cs=Pin(5), int_pin=Pin(0), + int_handler=self.touchscreen_press) + # Display initial message + self.display.draw_text8x8(self.display.width // 2 - 32, + self.display.height - 9, + "TOUCH ME", + self.WHITE, + background=self.PURPLE) + + # A small 5x5 sprite for the dot + self.dot = bytearray(b'\x00\x00\x07\xE0\xF8\x00\x07\xE0\x00\x00\x07\xE0\xF8\x00\xF8\x00\xF8\x00\x07\xE0\xF8\x00\xF8\x00\xF8\x00\xF8\x00\xF8\x00\x07\xE0\xF8\x00\xF8\x00\xF8\x00\x07\xE0\x00\x00\x07\xE0\xF8\x00\x07\xE0\x00\x00') + + def touchscreen_press(self, x, y): + """Process touchscreen press events.""" + # Y needs to be flipped + y = (self.display.height - 1) - y + # Display coordinates + self.display.draw_text8x8(self.display.width // 2 - 32, + self.display.height - 9, + "{0:03d}, {1:03d}".format(x, y), + self.CYAN) + # Draw dot + self.display.draw_sprite(self.dot, x - 2, y - 2, 5, 5) + + +def test(): + """Test code.""" + spi = SPI( + 0, + baudrate=125_000_000, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN)) + display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN)) + spi2 = SPI(1, baudrate=1000000, sck=Pin(18), mosi=Pin(23), miso=Pin(19)) + + Demo(display, spi2) + + try: + while True: + idle() + + except KeyboardInterrupt: + print("\nCtrl-C pressed. Cleaning up and exiting...") + finally: + display.cleanup() + + +test() diff --git a/ili9341/fonts/ArcadePix9x11.c b/ili9341/fonts/ArcadePix9x11.c new file mode 100644 index 0000000..737de4e --- /dev/null +++ b/ili9341/fonts/ArcadePix9x11.c @@ -0,0 +1,111 @@ + +//WARNING: This Font Require X-GLCD Lib. +// You can not use it with MikroE GLCD Lib. + +//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0 +//MikroElektronika 2011 +//http://www.mikroe.com + +//GLCD FontName : Arcadepix9x11 +//Based on a font created by Reekee of Dimenzioned - reekee@00.co.uk +//GLCD FontSize : 9 x 11 + +const unsigned short Arcadepix9x11[] = { + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + 0x03, 0xBE, 0x01, 0xBE, 0x01, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! + 0x07, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char " + 0x07, 0x00, 0x00, 0x48, 0x00, 0xFC, 0x00, 0x48, 0x00, 0xFC, 0x00, 0x48, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char # + 0x06, 0x98, 0x00, 0xA4, 0x00, 0xA6, 0x01, 0xA4, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char $ + 0x08, 0x04, 0x00, 0x8A, 0x00, 0x44, 0x00, 0x20, 0x00, 0x10, 0x00, 0x88, 0x00, 0x44, 0x01, 0x80, 0x00, 0x00, 0x00, // Code for char % + 0x07, 0xC0, 0x00, 0xE4, 0x01, 0x3E, 0x01, 0x32, 0x01, 0x4C, 0x01, 0xC4, 0x00, 0xA0, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char & + 0x02, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' + 0x03, 0xFC, 0x00, 0xFE, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ( + 0x03, 0x02, 0x01, 0xFE, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ) + 0x06, 0x00, 0x00, 0xAC, 0x00, 0x70, 0x00, 0xFE, 0x01, 0x78, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char * + 0x07, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xFC, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + + 0x03, 0x00, 0x02, 0x80, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char , + 0x07, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char - + 0x02, 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char . + 0x06, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x30, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char / + 0x08, 0x38, 0x00, 0xFC, 0x00, 0x84, 0x00, 0x02, 0x01, 0x02, 0x01, 0x06, 0x01, 0xFC, 0x00, 0x38, 0x00, 0x00, 0x00, // Code for char 0 + 0x07, 0x00, 0x01, 0x04, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char 1 + 0x08, 0x84, 0x01, 0xC6, 0x01, 0xE2, 0x01, 0x62, 0x01, 0x62, 0x01, 0x72, 0x01, 0x3E, 0x01, 0x0C, 0x01, 0x00, 0x00, // Code for char 2 + 0x08, 0x80, 0x00, 0x82, 0x01, 0x22, 0x01, 0x22, 0x01, 0x32, 0x01, 0x3E, 0x01, 0xE6, 0x01, 0xC2, 0x00, 0x00, 0x00, // Code for char 3 + 0x08, 0x60, 0x00, 0x70, 0x00, 0x4C, 0x00, 0x44, 0x00, 0x46, 0x00, 0xFE, 0x01, 0xFE, 0x01, 0x40, 0x00, 0x00, 0x00, // Code for char 4 + 0x08, 0x8E, 0x00, 0x8E, 0x01, 0x0A, 0x01, 0x0A, 0x01, 0x0A, 0x01, 0x0A, 0x01, 0xFA, 0x01, 0xE2, 0x00, 0x00, 0x00, // Code for char 5 + 0x08, 0xF8, 0x00, 0xFC, 0x01, 0x26, 0x01, 0x22, 0x01, 0x22, 0x01, 0x22, 0x01, 0xE2, 0x01, 0xC2, 0x00, 0x00, 0x00, // Code for char 6 + 0x08, 0x06, 0x00, 0x06, 0x00, 0xC2, 0x01, 0xE2, 0x01, 0x22, 0x00, 0x1A, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char 7 + 0x08, 0xCC, 0x00, 0x3E, 0x01, 0x32, 0x01, 0x22, 0x01, 0x22, 0x01, 0x32, 0x01, 0xCC, 0x01, 0xC0, 0x00, 0x00, 0x00, // Code for char 8 + 0x08, 0x0C, 0x00, 0x3E, 0x01, 0x22, 0x01, 0x22, 0x01, 0x22, 0x01, 0xA2, 0x01, 0xFE, 0x00, 0x7C, 0x00, 0x00, 0x00, // Code for char 9 + 0x02, 0x98, 0x01, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char : + 0x03, 0x00, 0x02, 0x98, 0x03, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ; + 0x05, 0x00, 0x00, 0x20, 0x00, 0x70, 0x00, 0xCC, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char < + 0x07, 0x00, 0x00, 0x84, 0x00, 0x84, 0x00, 0x84, 0x00, 0x84, 0x00, 0x84, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char = + 0x05, 0x00, 0x00, 0x84, 0x00, 0xCC, 0x00, 0x70, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char > + 0x08, 0x0C, 0x00, 0x0E, 0x00, 0x02, 0x05, 0x02, 0x05, 0x82, 0x00, 0xC2, 0x00, 0x7E, 0x00, 0x1C, 0x00, 0x00, 0x00, // Code for char ? + 0x09, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x01, 0x72, 0x02, 0x8A, 0x02, 0x8A, 0x02, 0x92, 0x00, 0xE2, 0x00, 0xFC, 0x01, // Code for char @ + 0x08, 0xF8, 0x01, 0xFC, 0x01, 0x46, 0x00, 0x42, 0x00, 0x42, 0x00, 0x46, 0x00, 0xFC, 0x01, 0xF8, 0x01, 0x00, 0x00, // Code for char A + 0x08, 0xFE, 0x01, 0xFE, 0x01, 0x22, 0x01, 0x22, 0x01, 0x22, 0x01, 0x22, 0x01, 0xFE, 0x01, 0xCC, 0x00, 0x00, 0x00, // Code for char B + 0x08, 0x38, 0x00, 0xFC, 0x00, 0x86, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x86, 0x01, 0x84, 0x00, 0x00, 0x00, // Code for char C + 0x08, 0xFE, 0x01, 0xFE, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x86, 0x01, 0xFC, 0x00, 0x70, 0x00, 0x00, 0x00, // Code for char D + 0x08, 0xFE, 0x01, 0xFE, 0x01, 0x22, 0x01, 0x22, 0x01, 0x22, 0x01, 0x22, 0x01, 0x22, 0x01, 0x02, 0x01, 0x00, 0x00, // Code for char E + 0x08, 0xFE, 0x01, 0xFE, 0x01, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x02, 0x00, 0x00, 0x00, // Code for char F + 0x08, 0x70, 0x00, 0xFC, 0x00, 0x86, 0x01, 0x02, 0x01, 0x02, 0x01, 0x22, 0x01, 0xE2, 0x01, 0xE2, 0x01, 0x00, 0x00, // Code for char G + 0x08, 0xFE, 0x01, 0xFE, 0x01, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xFE, 0x01, 0xFE, 0x01, 0x00, 0x00, // Code for char H + 0x07, 0x02, 0x01, 0x02, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char I + 0x08, 0xC0, 0x00, 0xC0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x01, 0xFE, 0x00, 0x00, 0x00, // Code for char J + 0x08, 0xFE, 0x01, 0xFE, 0x01, 0x60, 0x00, 0x70, 0x00, 0xD8, 0x00, 0xCC, 0x01, 0x86, 0x01, 0x02, 0x01, 0x00, 0x00, // Code for char K + 0x08, 0xFE, 0x01, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, // Code for char L + 0x08, 0x00, 0x00, 0xFE, 0x01, 0xFE, 0x01, 0x1C, 0x00, 0x38, 0x00, 0x1C, 0x00, 0xFE, 0x01, 0xFE, 0x01, 0x00, 0x00, // Code for char M + 0x08, 0xFE, 0x01, 0xFE, 0x01, 0x1C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x00, 0xFE, 0x01, 0xFE, 0x01, 0x00, 0x00, // Code for char N + 0x08, 0xFC, 0x00, 0xFE, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFE, 0x01, 0xFC, 0x00, 0x00, 0x00, // Code for char O + 0x08, 0xFE, 0x01, 0xFE, 0x01, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x7E, 0x00, 0x1C, 0x00, 0x00, 0x00, // Code for char P + 0x08, 0xFC, 0x00, 0xFE, 0x01, 0x02, 0x01, 0x42, 0x01, 0x42, 0x01, 0xC2, 0x01, 0xFE, 0x00, 0x7C, 0x01, 0x00, 0x00, // Code for char Q + 0x08, 0xFE, 0x01, 0xFE, 0x01, 0x42, 0x00, 0x42, 0x00, 0xC2, 0x00, 0xF2, 0x01, 0xBE, 0x01, 0x3C, 0x01, 0x00, 0x00, // Code for char R + 0x08, 0x8C, 0x00, 0xBE, 0x01, 0x22, 0x01, 0x22, 0x01, 0x22, 0x01, 0x26, 0x01, 0xE4, 0x01, 0xC0, 0x00, 0x00, 0x00, // Code for char S + 0x07, 0x02, 0x00, 0x02, 0x00, 0xFE, 0x01, 0xFE, 0x01, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T + 0x08, 0xFE, 0x00, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x01, 0xFE, 0x00, 0x00, 0x00, // Code for char U + 0x08, 0x00, 0x00, 0x3E, 0x00, 0x7E, 0x00, 0xE0, 0x00, 0xC0, 0x01, 0xE0, 0x00, 0x7E, 0x00, 0x3E, 0x00, 0x00, 0x00, // Code for char V + 0x08, 0x00, 0x00, 0xFE, 0x01, 0xFE, 0x01, 0xE0, 0x00, 0x38, 0x00, 0xE0, 0x00, 0xFE, 0x01, 0xFE, 0x01, 0x00, 0x00, // Code for char W + 0x07, 0x86, 0x01, 0xCE, 0x01, 0xFC, 0x00, 0x38, 0x00, 0xFC, 0x00, 0xCE, 0x01, 0x86, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char X + 0x06, 0x1E, 0x00, 0x3E, 0x00, 0xE0, 0x01, 0xE0, 0x01, 0x3E, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Y + 0x08, 0x82, 0x01, 0xC2, 0x01, 0xE2, 0x01, 0x72, 0x01, 0x3A, 0x01, 0x1E, 0x01, 0x0E, 0x01, 0x06, 0x01, 0x00, 0x00, // Code for char Z + 0x04, 0xFE, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [ + 0x06, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash + 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ] + 0x07, 0x10, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ^ + 0x08, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, // Code for char _ + 0x05, 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ` + 0x07, 0xC0, 0x00, 0xE4, 0x01, 0x24, 0x01, 0x24, 0x01, 0x24, 0x01, 0xFC, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char a + 0x07, 0xFE, 0x01, 0xFE, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0xF8, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char b + 0x07, 0xF8, 0x00, 0xFC, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x8C, 0x01, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char c + 0x07, 0xF0, 0x00, 0xF8, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char d + 0x07, 0xF0, 0x00, 0xFC, 0x01, 0x44, 0x01, 0x44, 0x01, 0x44, 0x01, 0x7C, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char e + 0x06, 0x08, 0x00, 0xFC, 0x01, 0xFE, 0x01, 0x0A, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char f + 0x07, 0xF8, 0x00, 0xFC, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0xFC, 0x07, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, // Code for char g + 0x07, 0xFE, 0x01, 0xFE, 0x01, 0x18, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF8, 0x01, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char h + 0x03, 0x04, 0x00, 0xFD, 0x01, 0xFD, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char i + 0x05, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0xFD, 0x07, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j + 0x06, 0xFE, 0x01, 0xFE, 0x01, 0x40, 0x00, 0xE0, 0x00, 0xB8, 0x01, 0x18, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char k + 0x03, 0x02, 0x00, 0xFE, 0x01, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char l + 0x08, 0x00, 0x00, 0xFC, 0x01, 0xFC, 0x01, 0x7C, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0xFC, 0x01, 0xF8, 0x01, 0x00, 0x00, // Code for char m + 0x07, 0xFC, 0x01, 0xFC, 0x01, 0x0C, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFC, 0x01, 0xF8, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char n + 0x07, 0xF8, 0x00, 0xFC, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0xFC, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char o + 0x07, 0xFC, 0x07, 0xFC, 0x07, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0xFC, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char p + 0x07, 0xF8, 0x00, 0xFC, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0xFC, 0x07, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00, // Code for char q + 0x07, 0xFC, 0x01, 0xFC, 0x01, 0x0C, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char r + 0x07, 0x88, 0x00, 0xBC, 0x01, 0x24, 0x01, 0x24, 0x01, 0x24, 0x01, 0xE4, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char s + 0x05, 0x04, 0x00, 0xFE, 0x00, 0xFE, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char t + 0x07, 0xFC, 0x00, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x80, 0x01, 0xFC, 0x01, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char u + 0x06, 0x7C, 0x00, 0xFC, 0x00, 0x80, 0x01, 0x80, 0x01, 0xFC, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char v + 0x07, 0xFC, 0x00, 0xFC, 0x01, 0xE0, 0x01, 0xF0, 0x00, 0xE0, 0x01, 0xFC, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char w + 0x07, 0x84, 0x01, 0xCC, 0x01, 0x78, 0x00, 0x30, 0x00, 0x78, 0x00, 0xCC, 0x01, 0x84, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char x + 0x07, 0xFC, 0x00, 0xFC, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0xFC, 0x07, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, // Code for char y + 0x07, 0x84, 0x01, 0xC4, 0x01, 0xC4, 0x01, 0x64, 0x01, 0x3C, 0x01, 0x1C, 0x01, 0x0C, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char z + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char | + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char } + 0x08, 0x20, 0x00, 0x38, 0x00, 0x08, 0x00, 0x18, 0x00, 0x20, 0x00, 0x20, 0x00, 0x38, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char ~ + 0x02, 0xFC, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char  + }; + diff --git a/ili9341/fonts/Bally5x8.c b/ili9341/fonts/Bally5x8.c new file mode 100644 index 0000000..66c399e --- /dev/null +++ b/ili9341/fonts/Bally5x8.c @@ -0,0 +1,111 @@ + +//WARNING: This Font Require X-GLCD Lib. +// You can not use it with MikroE GLCD Lib. + +//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0 +//MikroElektronika 2011 +//http://www.mikroe.com + +//GLCD FontName : Bally5x8 +//Created by rdagger based on original Bally Astrocade Basic font +//GLCD FontSize : 5 x 8 + +const unsigned short Bally5x8[] = { + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + 0x05, 0x00, 0x00, 0x5F, 0x00, 0x00, // Code for char ! + 0x05, 0x00, 0x07, 0x00, 0x07, 0x00, // Code for char " + 0x05, 0x14, 0x7F, 0x14, 0x7F, 0x14, // Code for char # + 0x05, 0x24, 0x2A, 0x6B, 0x2A, 0x12, // Code for char $ + 0x05, 0x23, 0x13, 0x08, 0x64, 0x62, // Code for char % + 0x05, 0x36, 0x49, 0x55, 0x22, 0x50, // Code for char & + 0x05, 0x00, 0x07, 0x07, 0x00, 0x00, // Code for char ' + 0x05, 0x00, 0x3E, 0x41, 0x00, 0x00, // Code for char ( + 0x05, 0x00, 0x00, 0x41, 0x3E, 0x00, // Code for char ) + 0x05, 0x22, 0x14, 0x08, 0x14, 0x22, // Code for char * Multiply Symbol + 0x05, 0x08, 0x08, 0x3E, 0x08, 0x08, // Code for char + + 0x05, 0x58, 0x38, 0x00, 0x00, 0x00, // Code for char , + 0x05, 0x08, 0x08, 0x08, 0x08, 0x08, // Code for char - + 0x05, 0x00, 0x60, 0x60, 0x00, 0x00, // Code for char . + 0x05, 0x20, 0x10, 0x08, 0x04, 0x02, // Code for char / + 0x05, 0x3E, 0x41, 0x41, 0x41, 0x3E, // Code for char 0 + 0x05, 0x00, 0x42, 0x7F, 0x40, 0x00, // Code for char 1 + 0x05, 0x72, 0x49, 0x49, 0x49, 0x46, // Code for char 2 + 0x05, 0x22, 0x41, 0x49, 0x49, 0x36, // Code for char 3 + 0x05, 0x18, 0x14, 0x12, 0x7F, 0x10, // Code for char 4 + 0x05, 0x27, 0x45, 0x45, 0x45, 0x39, // Code for char 5 + 0x05, 0x3C, 0x4A, 0x49, 0x49, 0x30, // Code for char 6 + 0x05, 0x01, 0x71, 0x09, 0x05, 0x03, // Code for char 7 + 0x05, 0x36, 0x49, 0x49, 0x49, 0x36, // Code for char 8 + 0x05, 0x06, 0x49, 0x49, 0x29, 0x1E, // Code for char 9 + 0x05, 0x00, 0x36, 0x36, 0x00, 0x00, // Code for char : + 0x05, 0x00, 0x5B, 0x3B, 0x00, 0x00, // Code for char ; + 0x05, 0x08, 0x14, 0x22, 0x41, 0x00, // Code for char < + 0x05, 0x14, 0x14, 0x14, 0x14, 0x14, // Code for char = + 0x05, 0x00, 0x41, 0x22, 0x14, 0x08, // Code for char > + 0x05, 0x02, 0x01, 0x51, 0x09, 0x06, // Code for char ? + 0x05, 0x3E, 0x41, 0x5D, 0x55, 0x1E, // Code for char @ + 0x05, 0x7E, 0x09, 0x09, 0x09, 0x7E, // Code for char A + 0x05, 0x7F, 0x49, 0x49, 0x49, 0x36, // Code for char B + 0x05, 0x3E, 0x41, 0x41, 0x41, 0x22, // Code for char C + 0x05, 0x7F, 0x41, 0x41, 0x41, 0x3E, // Code for char D + 0x05, 0x7F, 0x49, 0x49, 0x41, 0x41, // Code for char E + 0x05, 0x7F, 0x09, 0x09, 0x01, 0x01, // Code for char F + 0x05, 0x3E, 0x41, 0x41, 0x51, 0x72, // Code for char G + 0x05, 0x7F, 0x08, 0x08, 0x08, 0x7F, // Code for char H + 0x05, 0x00, 0x41, 0x7F, 0x41, 0x00, // Code for char I + 0x05, 0x20, 0x40, 0x40, 0x40, 0x3F, // Code for char J + 0x05, 0x7F, 0x08, 0x14, 0x22, 0x41, // Code for char K + 0x05, 0x7F, 0x40, 0x40, 0x40, 0x40, // Code for char L + 0x05, 0x7F, 0x02, 0x0C, 0x02, 0x7F, // Code for char M + 0x05, 0x7F, 0x02, 0x04, 0x08, 0x7F, // Code for char N + 0x05, 0x7F, 0x41, 0x41, 0x41, 0x7F, // Code for char O + 0x05, 0x7F, 0x09, 0x09, 0x09, 0x06, // Code for char P + 0x05, 0x3E, 0x41, 0x51, 0x21, 0x5E, // Code for char Q + 0x05, 0x7F, 0x09, 0x19, 0x29, 0x46, // Code for char R + 0x05, 0x26, 0x49, 0x49, 0x49, 0x32, // Code for char S + 0x05, 0x01, 0x01, 0x7F, 0x01, 0x01, // Code for char T + 0x05, 0x3F, 0x40, 0x40, 0x40, 0x3F, // Code for char U + 0x05, 0x07, 0x18, 0x60, 0x18, 0x07, // Code for char V + 0x05, 0x7F, 0x20, 0x18, 0x20, 0x7F, // Code for char W + 0x05, 0x63, 0x14, 0x08, 0x14, 0x63, // Code for char X + 0x05, 0x03, 0x04, 0x78, 0x04, 0x03, // Code for char Y + 0x05, 0x61, 0x51, 0x49, 0x45, 0x43, // Code for char Z + 0x05, 0x7F, 0x41, 0x41, 0x00, 0x00, // Code for char [ + 0x05, 0x08, 0x08, 0x2A, 0x08, 0x08, // Code for char / Division Symbol + 0x05, 0x00, 0x00, 0x41, 0x41, 0x7F, // Code for char ] + 0x05, 0x04, 0x02, 0x7F, 0x02, 0x04, // Code for char ^ Up Arrow + 0x05, 0x10, 0x20, 0x7F, 0x20, 0x10, // Code for char _ Down Arrow + 0x05, 0x07, 0x05, 0x07, 0x00, 0x00, // Code for char ` Degree + 0x05, 0x20, 0x54, 0x54, 0x54, 0x78, // Code for char a + 0x05, 0x7F, 0x48, 0x44, 0x44, 0x38, // Code for char b + 0x05, 0x38, 0x44, 0x44, 0x44, 0x20, // Code for char c + 0x05, 0x38, 0x44, 0x44, 0x48, 0x7F, // Code for char d + 0x05, 0x38, 0x54, 0x54, 0x54, 0x58, // Code for char e + 0x05, 0x08, 0x7E, 0x09, 0x01, 0x02, // Code for char f + 0x05, 0x0C, 0x52, 0x52, 0x52, 0x3E, // Code for char g + 0x05, 0x7F, 0x08, 0x04, 0x04, 0x78, // Code for char h + 0x05, 0x00, 0x48, 0x7A, 0x40, 0x00, // Code for char i + 0x05, 0x20, 0x40, 0x44, 0x3D, 0x00, // Code for char j + 0x05, 0x7F, 0x10, 0x28, 0x44, 0x00, // Code for char k + 0x05, 0x00, 0x41, 0x7F, 0x40, 0x00, // Code for char l + 0x05, 0x7C, 0x04, 0x18, 0x04, 0x78, // Code for char m + 0x05, 0x7C, 0x08, 0x04, 0x04, 0x78, // Code for char n + 0x05, 0x38, 0x44, 0x44, 0x44, 0x38, // Code for char o + 0x05, 0x7C, 0x14, 0x14, 0x14, 0x08, // Code for char p + 0x05, 0x08, 0x14, 0x14, 0x18, 0x7C, // Code for char q + 0x05, 0x7C, 0x08, 0x04, 0x04, 0x08, // Code for char r + 0x05, 0x48, 0x54, 0x54, 0x54, 0x20, // Code for char s + 0x05, 0x04, 0x3F, 0x44, 0x40, 0x20, // Code for char t + 0x05, 0x3C, 0x40, 0x40, 0x20, 0x7C, // Code for char u + 0x05, 0x1C, 0x20, 0x40, 0x20, 0x1C, // Code for char v + 0x05, 0x3C, 0x40, 0x30, 0x40, 0x3C, // Code for char w + 0x05, 0x44, 0x28, 0x10, 0x28, 0x44, // Code for char x + 0x05, 0x0C, 0x50, 0x50, 0x50, 0x3C, // Code for char y + 0x05, 0x44, 0x64, 0x54, 0x4C, 0x44, // Code for char z + 0x05, 0x08, 0x1C, 0x2A, 0x08, 0x08, // Code for char { Left Arrow + 0x05, 0x00, 0x00, 0x7F, 0x00, 0x00, // Code for char | + 0x05, 0x08, 0x08, 0x2A, 0x1C, 0x08, // Code for char } Right Arrow + 0x05, 0x18, 0x04, 0x08, 0x10, 0x0C, // Code for char ~ + 0x05, 0x3E, 0x00, 0x00, 0x00, 0x00 // Code for char  + }; + diff --git a/ili9341/fonts/Bally7x9.c b/ili9341/fonts/Bally7x9.c new file mode 100644 index 0000000..8e91bd0 --- /dev/null +++ b/ili9341/fonts/Bally7x9.c @@ -0,0 +1,111 @@ + +//WARNING: This Font Require X-GLCD Lib. +// You can not use it with MikroE GLCD Lib. + +//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0 +//MikroElektronika 2011 +//http://www.mikroe.com + +//GLCD FontName : Bally7x9 +//Created by rdagger based on original Bally Astrocade Basic font. +//GLCD FontSize : 7 x 9 + +const unsigned short Bally7x9[] = { + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! + 0x05, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char " + 0x06, 0x00, 0x00, 0x28, 0x00, 0xFE, 0x00, 0x28, 0x00, 0xFE, 0x00, 0x28, 0x00, 0x00, 0x00, // Code for char # + 0x06, 0x00, 0x00, 0x48, 0x00, 0x54, 0x00, 0xD6, 0x00, 0x54, 0x00, 0x24, 0x00, 0x00, 0x00, // Code for char $ + 0x06, 0x00, 0x00, 0x46, 0x00, 0x26, 0x00, 0x10, 0x00, 0xC8, 0x00, 0xC4, 0x00, 0x00, 0x00, // Code for char % + 0x06, 0x00, 0x00, 0x6C, 0x00, 0x92, 0x00, 0xAA, 0x00, 0x44, 0x00, 0xA0, 0x00, 0x00, 0x00, // Code for char & + 0x04, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ( + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ) + 0x06, 0x00, 0x00, 0x44, 0x00, 0x28, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x00, 0x00, // Code for char * + 0x06, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x7C, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, // Code for char + + 0x03, 0x00, 0x00, 0xB0, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char , + 0x06, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, // Code for char - + 0x03, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char . + 0x06, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, // Code for char / + 0x06, 0x00, 0x00, 0x7C, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0x7C, 0x00, 0x00, 0x00, // Code for char 0 + 0x05, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0xFE, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 1 + 0x06, 0x00, 0x00, 0xE4, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x8C, 0x00, 0x00, 0x00, // Code for char 2 + 0x06, 0x00, 0x00, 0x44, 0x00, 0x82, 0x00, 0x92, 0x00, 0x92, 0x00, 0x6C, 0x00, 0x00, 0x00, // Code for char 3 + 0x06, 0x00, 0x00, 0x30, 0x00, 0x28, 0x00, 0x24, 0x00, 0xFE, 0x00, 0x20, 0x00, 0x00, 0x00, // Code for char 4 + 0x06, 0x00, 0x00, 0x4E, 0x00, 0x8A, 0x00, 0x8A, 0x00, 0x8A, 0x00, 0x72, 0x00, 0x00, 0x00, // Code for char 5 + 0x06, 0x00, 0x00, 0x78, 0x00, 0x94, 0x00, 0x92, 0x00, 0x92, 0x00, 0x60, 0x00, 0x00, 0x00, // Code for char 6 + 0x06, 0x00, 0x00, 0x02, 0x00, 0xE2, 0x00, 0x12, 0x00, 0x0A, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char 7 + 0x06, 0x00, 0x00, 0x6C, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x6C, 0x00, 0x00, 0x00, // Code for char 8 + 0x06, 0x00, 0x00, 0x0C, 0x00, 0x92, 0x00, 0x92, 0x00, 0x52, 0x00, 0x3C, 0x00, 0x00, 0x00, // Code for char 9 + 0x04, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char : + 0x04, 0x00, 0x00, 0x00, 0x00, 0xB6, 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ; + 0x05, 0x00, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char < + 0x06, 0x00, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, 0x00, 0x00, // Code for char = + 0x06, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x44, 0x00, 0x28, 0x00, 0x10, 0x00, 0x00, 0x00, // Code for char > + 0x06, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0xA2, 0x00, 0x12, 0x00, 0x0C, 0x00, 0x00, 0x00, // Code for char ? + 0x06, 0x00, 0x00, 0x7C, 0x00, 0x82, 0x00, 0xBA, 0x00, 0xAA, 0x00, 0x3C, 0x00, 0x00, 0x00, // Code for char @ + 0x06, 0x00, 0x00, 0xFC, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0xFC, 0x00, 0x00, 0x00, // Code for char A + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x6C, 0x00, 0x00, 0x00, // Code for char B + 0x06, 0x00, 0x00, 0x7C, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0x44, 0x00, 0x00, 0x00, // Code for char C + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0x7C, 0x00, 0x00, 0x00, // Code for char D + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x92, 0x00, 0x92, 0x00, 0x82, 0x00, 0x82, 0x00, 0x00, 0x00, // Code for char E + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x12, 0x00, 0x12, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, // Code for char F + 0x06, 0x00, 0x00, 0x7C, 0x00, 0x82, 0x00, 0x82, 0x00, 0xA2, 0x00, 0xE4, 0x00, 0x00, 0x00, // Code for char G + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xFE, 0x00, 0x00, 0x00, // Code for char H + 0x05, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0xFE, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I + 0x06, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x7E, 0x00, 0x00, 0x00, // Code for char J + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x82, 0x00, 0x00, 0x00, // Code for char K + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, // Code for char L + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x04, 0x00, 0x18, 0x00, 0x04, 0x00, 0xFE, 0x00, 0x00, 0x00, // Code for char M + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0xFE, 0x00, 0x00, 0x00, // Code for char N + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0xFE, 0x00, 0x00, 0x00, // Code for char O + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x0C, 0x00, 0x00, 0x00, // Code for char P + 0x06, 0x00, 0x00, 0x7C, 0x00, 0x82, 0x00, 0xA2, 0x00, 0x42, 0x00, 0xBC, 0x00, 0x00, 0x00, // Code for char Q + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x12, 0x00, 0x32, 0x00, 0x52, 0x00, 0x8C, 0x00, 0x00, 0x00, // Code for char R + 0x06, 0x00, 0x00, 0x4C, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x64, 0x00, 0x00, 0x00, // Code for char S + 0x06, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFE, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, // Code for char T + 0x06, 0x00, 0x00, 0x7E, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x7E, 0x00, 0x00, 0x00, // Code for char U + 0x06, 0x00, 0x00, 0x0E, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0E, 0x00, 0x00, 0x00, // Code for char V + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x40, 0x00, 0x30, 0x00, 0x40, 0x00, 0xFE, 0x00, 0x00, 0x00, // Code for char W + 0x06, 0x00, 0x00, 0xC6, 0x00, 0x28, 0x00, 0x10, 0x00, 0x28, 0x00, 0xC6, 0x00, 0x00, 0x00, // Code for char X + 0x06, 0x00, 0x00, 0x06, 0x00, 0x08, 0x00, 0xF0, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char Y + 0x06, 0x00, 0x00, 0xC2, 0x00, 0xA2, 0x00, 0x92, 0x00, 0x8A, 0x00, 0x86, 0x00, 0x00, 0x00, // Code for char Z + 0x04, 0x00, 0x00, 0xFE, 0x00, 0x82, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [ + 0x06, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x54, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, // Code for char BackSlash + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x82, 0x00, 0xFE, 0x00, 0x00, 0x00, // Code for char ] + 0x06, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0xFE, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char ^ + 0x06, 0x00, 0x00, 0x20, 0x00, 0x40, 0x00, 0xFE, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, // Code for char _ + 0x04, 0x00, 0x00, 0x0E, 0x00, 0x0A, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ` + 0x06, 0x00, 0x00, 0x40, 0x00, 0xA8, 0x00, 0xA8, 0x00, 0xA8, 0x00, 0xF0, 0x00, 0x00, 0x00, // Code for char a + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x90, 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, // Code for char b + 0x06, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x40, 0x00, 0x00, 0x00, // Code for char c + 0x06, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0x90, 0x00, 0xFE, 0x00, 0x00, 0x00, // Code for char d + 0x06, 0x00, 0x00, 0x70, 0x00, 0xA8, 0x00, 0xA8, 0x00, 0xA8, 0x00, 0xB0, 0x00, 0x00, 0x00, // Code for char e + 0x06, 0x00, 0x00, 0x10, 0x00, 0xFC, 0x00, 0x12, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, // Code for char f + 0x06, 0x00, 0x00, 0x18, 0x00, 0xA4, 0x00, 0xA4, 0x00, 0xA4, 0x00, 0x7C, 0x00, 0x00, 0x00, // Code for char g + 0x06, 0x00, 0x00, 0xFE, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF0, 0x00, 0x00, 0x00, // Code for char h + 0x05, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xF4, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char i + 0x05, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x88, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j + 0x05, 0x00, 0x00, 0xFE, 0x00, 0x20, 0x00, 0x50, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char k + 0x05, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0xFE, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char l + 0x06, 0x00, 0x00, 0xF8, 0x00, 0x08, 0x00, 0x30, 0x00, 0x08, 0x00, 0xF0, 0x00, 0x00, 0x00, // Code for char m + 0x06, 0x00, 0x00, 0xF8, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF0, 0x00, 0x00, 0x00, // Code for char n + 0x06, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, // Code for char o + 0x06, 0x00, 0x00, 0xF8, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, 0x10, 0x00, 0x00, 0x00, // Code for char p + 0x06, 0x00, 0x00, 0x10, 0x00, 0x28, 0x00, 0x28, 0x00, 0x30, 0x00, 0xF8, 0x00, 0x00, 0x00, // Code for char q + 0x06, 0x00, 0x00, 0xF8, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, // Code for char r + 0x06, 0x00, 0x00, 0x90, 0x00, 0xA8, 0x00, 0xA8, 0x00, 0xA8, 0x00, 0x40, 0x00, 0x00, 0x00, // Code for char s + 0x06, 0x00, 0x00, 0x08, 0x00, 0x7E, 0x00, 0x88, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, // Code for char t + 0x06, 0x00, 0x00, 0x78, 0x00, 0x80, 0x00, 0x80, 0x00, 0x40, 0x00, 0xF8, 0x00, 0x00, 0x00, // Code for char u + 0x06, 0x00, 0x00, 0x38, 0x00, 0x40, 0x00, 0x80, 0x00, 0x40, 0x00, 0x38, 0x00, 0x00, 0x00, // Code for char v + 0x06, 0x00, 0x00, 0x78, 0x00, 0x80, 0x00, 0x60, 0x00, 0x80, 0x00, 0x78, 0x00, 0x00, 0x00, // Code for char w + 0x06, 0x00, 0x00, 0x88, 0x00, 0x50, 0x00, 0x20, 0x00, 0x50, 0x00, 0x88, 0x00, 0x00, 0x00, // Code for char x + 0x06, 0x00, 0x00, 0x18, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0x78, 0x00, 0x00, 0x00, // Code for char y + 0x06, 0x00, 0x00, 0x88, 0x00, 0xC8, 0x00, 0xA8, 0x00, 0x98, 0x00, 0x88, 0x00, 0x00, 0x00, // Code for char z + 0x06, 0x00, 0x00, 0x10, 0x00, 0x38, 0x00, 0x54, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, // Code for char { + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char | + 0x06, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x54, 0x00, 0x38, 0x00, 0x10, 0x00, 0x00, 0x00, // Code for char } + 0x06, 0x00, 0x00, 0x30, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x18, 0x00, 0x00, 0x00, // Code for char ~ + 0x02, 0x7C, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char  + }; + diff --git a/ili9341/fonts/Broadway17x15.c b/ili9341/fonts/Broadway17x15.c new file mode 100644 index 0000000..c8f6c53 --- /dev/null +++ b/ili9341/fonts/Broadway17x15.c @@ -0,0 +1,105 @@ +//Font Generated by GLCD Font Creator +//Copyright 2007 Pocket MicroTechnics +//http://www.pocketmt.com + +//GLCD FontName : Broadway17x15 +//Based on a font by Connormah which is public domain (according to Wikipedia) +//GLCD FontSize : 17 x 15 + +const unsigned short Broadway17x15[] = { + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + 0x06, 0x00, 0x00, 0x1C, 0x04, 0x3E, 0x0E, 0xFE, 0x0E, 0x7E, 0x0E, 0x1C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! + 0x06, 0x00, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char " + 0x0B, 0x00, 0x00, 0x90, 0x00, 0x90, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x00, 0x90, 0x00, 0xD0, 0x0F, 0xBE, 0x00, 0x90, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char # + 0x09, 0x00, 0x00, 0x3C, 0x04, 0x7C, 0x14, 0xFE, 0x0E, 0xFE, 0x09, 0xF2, 0x0F, 0xFE, 0x0F, 0xC3, 0x07, 0x84, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char $ + 0x0C, 0x3C, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x42, 0x08, 0x3C, 0x06, 0x80, 0x01, 0x60, 0x00, 0x98, 0x07, 0xC6, 0x0F, 0xC0, 0x0F, 0x40, 0x08, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char % + 0x0C, 0x00, 0x07, 0xBC, 0x0C, 0x7C, 0x08, 0xFE, 0x09, 0xFA, 0x0B, 0xF2, 0x07, 0xF2, 0x0F, 0xCC, 0x0F, 0x00, 0x0F, 0x80, 0x0E, 0x40, 0x0C, 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char & + 0x03, 0x00, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' + 0x05, 0x00, 0x00, 0xF8, 0x0F, 0xFC, 0x1F, 0xFE, 0x3F, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ( + 0x05, 0x00, 0x00, 0x02, 0x20, 0xFE, 0x3F, 0xFC, 0x1F, 0xF8, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ) + 0x05, 0x04, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x2C, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char * + 0x09, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xF0, 0x07, 0xF0, 0x07, 0xF0, 0x07, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + + 0x06, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x2E, 0x00, 0x2E, 0x00, 0x3E, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char , + 0x06, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char - + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char . + 0x07, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char / + 0x09, 0x00, 0x00, 0xF0, 0x01, 0xFC, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x02, 0x08, 0x0C, 0x06, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0 + 0x08, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0xFC, 0x0F, 0xFC, 0x0F, 0xFC, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 1 + 0x09, 0x38, 0x08, 0x04, 0x0C, 0x02, 0x0F, 0xC2, 0x0F, 0xF2, 0x0F, 0xFE, 0x0F, 0xFE, 0x09, 0x7C, 0x08, 0x38, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 2 + 0x09, 0x00, 0x04, 0x04, 0x08, 0x02, 0x08, 0x22, 0x08, 0xFE, 0x0F, 0xDE, 0x0F, 0xDE, 0x0F, 0xDC, 0x07, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 3 + 0x0B, 0x00, 0x02, 0x00, 0x03, 0x80, 0x02, 0x40, 0x02, 0xE0, 0x0F, 0xF0, 0x0F, 0xF8, 0x0F, 0xFC, 0x0F, 0xFE, 0x0F, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 4 + 0x09, 0xC0, 0x03, 0x08, 0x04, 0x0E, 0x08, 0x0A, 0x08, 0xFA, 0x0F, 0xFA, 0x0F, 0xFA, 0x0F, 0xF2, 0x07, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 5 + 0x09, 0x00, 0x00, 0xF0, 0x01, 0xFC, 0x07, 0xFC, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x22, 0x08, 0x24, 0x04, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 6 + 0x0A, 0x02, 0x00, 0x02, 0x08, 0x02, 0x0E, 0x82, 0x0F, 0xE2, 0x0F, 0xFA, 0x0F, 0xFE, 0x0F, 0xFE, 0x01, 0x3E, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 7 + 0x09, 0x00, 0x00, 0x38, 0x07, 0xFC, 0x08, 0xFE, 0x08, 0xFE, 0x09, 0xF2, 0x0D, 0xE2, 0x0F, 0xFC, 0x07, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 8 + 0x09, 0x00, 0x00, 0x78, 0x00, 0x84, 0x04, 0x82, 0x08, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x07, 0xFC, 0x07, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 9 + 0x06, 0x00, 0x00, 0x20, 0x04, 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char : + 0x06, 0x00, 0x00, 0x20, 0x0C, 0x70, 0x2E, 0x70, 0x2E, 0x70, 0x3E, 0x20, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ; + 0x08, 0x00, 0x00, 0x40, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xF0, 0x01, 0xD0, 0x01, 0x88, 0x03, 0x8C, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char < + 0x0A, 0x00, 0x00, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char = + 0x07, 0x3C, 0x06, 0x38, 0x02, 0x70, 0x01, 0xF0, 0x01, 0xE0, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char > + 0x09, 0x00, 0x00, 0x0C, 0x00, 0x04, 0x04, 0x02, 0x0E, 0xFE, 0x0E, 0x7E, 0x0E, 0x7E, 0x04, 0x7C, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ? + 0x0C, 0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0xE4, 0x04, 0xF2, 0x0D, 0x12, 0x09, 0xD2, 0x09, 0xF2, 0x09, 0xF2, 0x09, 0x04, 0x09, 0x8C, 0x05, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char @ + 0x0D, 0x00, 0x08, 0x00, 0x06, 0x00, 0x05, 0xC0, 0x04, 0x70, 0x04, 0xF8, 0x05, 0xFE, 0x07, 0xF8, 0x0F, 0xF0, 0x0F, 0xC0, 0x0F, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char A + 0x0A, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x02, 0x08, 0x82, 0x08, 0x84, 0x0C, 0x78, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char B + 0x0B, 0x00, 0x00, 0xF0, 0x01, 0xF8, 0x03, 0xFC, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0x02, 0x08, 0x02, 0x08, 0x02, 0x04, 0x04, 0x06, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char C + 0x0B, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x02, 0x08, 0x02, 0x08, 0x04, 0x04, 0x08, 0x02, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char D + 0x0B, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char E + 0x0A, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F + 0x0B, 0x00, 0x00, 0xF0, 0x01, 0xF8, 0x03, 0xFC, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0x02, 0x08, 0x42, 0x08, 0x44, 0x04, 0x48, 0x02, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char G + 0x0B, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char H + 0x06, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I + 0x09, 0x00, 0x06, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x07, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char J + 0x0C, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x08, 0x00, 0x0C, 0x00, 0x34, 0x00, 0xC2, 0x00, 0x02, 0x03, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char K + 0x0B, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char L + 0x0F, 0x00, 0x0C, 0x80, 0x03, 0xF0, 0x00, 0xFE, 0x01, 0xFC, 0x03, 0xF8, 0x07, 0xF0, 0x03, 0xC0, 0x00, 0xC0, 0x00, 0xF0, 0x07, 0xF8, 0x0F, 0xFE, 0x0F, 0xF0, 0x0F, 0x80, 0x0F, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, // Code for char M + 0x0B, 0x00, 0x00, 0xFE, 0x0F, 0x7C, 0x00, 0xFC, 0x00, 0xF8, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x07, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char N + 0x0B, 0x00, 0x00, 0xF0, 0x01, 0xF8, 0x03, 0xFC, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0x02, 0x08, 0x02, 0x08, 0x04, 0x04, 0x08, 0x02, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char O + 0x0B, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x0C, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char P + 0x0B, 0x00, 0x00, 0xF0, 0x01, 0xF8, 0x03, 0xFC, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0x02, 0x08, 0x02, 0x0A, 0x04, 0x0C, 0x08, 0x0E, 0xF0, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Q + 0x0B, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x02, 0x01, 0x02, 0x06, 0x04, 0x0E, 0x0C, 0x09, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char R + 0x09, 0x00, 0x00, 0x38, 0x04, 0x7C, 0x08, 0xFE, 0x08, 0xFE, 0x0B, 0xFA, 0x0F, 0xE2, 0x0F, 0xC4, 0x07, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char S + 0x0B, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T + 0x0B, 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char U + 0x0D, 0x02, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x7E, 0x00, 0xFE, 0x01, 0xFE, 0x03, 0xFC, 0x0F, 0xF0, 0x03, 0xC0, 0x01, 0x60, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char V + 0x10, 0x02, 0x00, 0x1E, 0x00, 0xFE, 0x00, 0xFE, 0x03, 0xFE, 0x1F, 0xFE, 0x07, 0xF0, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0xF8, 0x03, 0xFE, 0x07, 0xF8, 0x1F, 0xF0, 0x03, 0xE0, 0x00, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char W + 0x0C, 0x02, 0x08, 0x0E, 0x04, 0x1E, 0x03, 0xFE, 0x00, 0xFE, 0x01, 0xFE, 0x03, 0xFC, 0x0F, 0xF0, 0x0F, 0xD8, 0x0F, 0x04, 0x0F, 0x02, 0x0E, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char X + 0x0C, 0x02, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x3E, 0x00, 0x7E, 0x08, 0xFE, 0x06, 0xFC, 0x01, 0xF8, 0x00, 0x30, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Y + 0x0B, 0x00, 0x08, 0x02, 0x0E, 0x82, 0x0F, 0xE2, 0x0F, 0xFA, 0x0F, 0xFE, 0x0F, 0xFE, 0x0B, 0xFE, 0x08, 0x3E, 0x08, 0x0E, 0x08, 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Z + 0x06, 0x00, 0x00, 0xFE, 0x3F, 0xFE, 0x3F, 0xFE, 0x3F, 0x02, 0x20, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [ + 0x07, 0x02, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash + 0x05, 0x02, 0x20, 0x02, 0x20, 0xFE, 0x3F, 0xFE, 0x3F, 0xFE, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ] + 0x08, 0xC0, 0x00, 0xF0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x1C, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ^ + 0x08, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char _ + 0x06, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ` + 0x0A, 0x00, 0x00, 0x80, 0x07, 0xD0, 0x0F, 0xC8, 0x0F, 0xC8, 0x0F, 0x48, 0x08, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char a + 0x0B, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x10, 0x04, 0x08, 0x08, 0xF8, 0x0F, 0xF8, 0x0F, 0xF0, 0x07, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char b + 0x08, 0x00, 0x00, 0xE0, 0x03, 0xF0, 0x07, 0xF8, 0x0F, 0xF8, 0x0F, 0x08, 0x08, 0x18, 0x04, 0x30, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char c + 0x0B, 0x00, 0x00, 0xE0, 0x03, 0xF0, 0x07, 0xF8, 0x0F, 0xF8, 0x0F, 0x08, 0x08, 0x10, 0x04, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char d + 0x09, 0x00, 0x00, 0xE0, 0x03, 0xF0, 0x07, 0xF8, 0x0F, 0xF8, 0x0F, 0x88, 0x08, 0xF8, 0x08, 0xF0, 0x04, 0xE0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char e + 0x07, 0x08, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFF, 0x0F, 0xFF, 0x0F, 0x09, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char f + 0x08, 0x00, 0x00, 0xE0, 0x2D, 0xF0, 0x4F, 0xF8, 0x4F, 0x08, 0x4E, 0xF8, 0x6F, 0xF4, 0x3D, 0xE0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char g + 0x0B, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x10, 0x00, 0x08, 0x00, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char h + 0x05, 0x00, 0x00, 0xFB, 0x0F, 0xFB, 0x0F, 0xFB, 0x0F, 0xFB, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char i + 0x05, 0x00, 0x10, 0xFB, 0x1F, 0xFB, 0x1F, 0xFB, 0x1F, 0xFB, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j + 0x0D, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xC0, 0x00, 0xE0, 0x01, 0xF0, 0x07, 0xF0, 0x0F, 0x88, 0x0F, 0x08, 0x0F, 0x00, 0x0C, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char k + 0x05, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char l + 0x11, 0x00, 0x00, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0x10, 0x00, 0x08, 0x00, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF0, 0x0F, 0x10, 0x00, 0x08, 0x00, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF0, 0x0F, // Code for char m + 0x0B, 0x00, 0x00, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0x10, 0x00, 0x08, 0x00, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char n + 0x09, 0x00, 0x00, 0xE0, 0x03, 0xF0, 0x07, 0xF8, 0x0F, 0xF8, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x10, 0x04, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char o + 0x0B, 0x00, 0x00, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0x10, 0x02, 0x08, 0x04, 0xF8, 0x07, 0xF8, 0x07, 0xF0, 0x03, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char p + 0x0B, 0x00, 0x00, 0xE0, 0x03, 0xF0, 0x07, 0xF8, 0x0F, 0xF8, 0x0F, 0x08, 0x08, 0x10, 0x04, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char q + 0x08, 0x00, 0x00, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char r + 0x08, 0x70, 0x04, 0xF0, 0x0C, 0xF8, 0x09, 0xE8, 0x09, 0xC8, 0x0B, 0xC8, 0x0F, 0x98, 0x07, 0x10, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char s + 0x07, 0x08, 0x00, 0xFC, 0x07, 0xFC, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x08, 0x0C, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char t + 0x0B, 0x00, 0x00, 0xF8, 0x07, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0x00, 0x08, 0x00, 0x08, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char u + 0x0A, 0x08, 0x00, 0x18, 0x00, 0x78, 0x00, 0xF8, 0x01, 0xF8, 0x03, 0xE0, 0x0F, 0xC0, 0x03, 0xC0, 0x00, 0x30, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char v + 0x0E, 0x08, 0x00, 0x38, 0x00, 0xF8, 0x00, 0xF8, 0x03, 0xF8, 0x0F, 0xE0, 0x07, 0x80, 0x01, 0xC0, 0x00, 0xF0, 0x01, 0xF8, 0x07, 0xF0, 0x0F, 0xC0, 0x01, 0x60, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char w + 0x0B, 0x08, 0x08, 0x18, 0x04, 0x38, 0x02, 0xF8, 0x01, 0xF8, 0x01, 0xF0, 0x07, 0xC0, 0x0F, 0xA0, 0x0F, 0x10, 0x0E, 0x08, 0x0C, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char x + 0x0A, 0x08, 0x00, 0x18, 0x00, 0x38, 0x08, 0xF8, 0x08, 0xF8, 0x09, 0xF0, 0x07, 0xC0, 0x01, 0x40, 0x00, 0x30, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char y + 0x0B, 0x00, 0x08, 0x08, 0x0C, 0x08, 0x0E, 0x88, 0x0F, 0xC8, 0x0F, 0xE8, 0x0F, 0xF8, 0x09, 0xF8, 0x08, 0x78, 0x08, 0x18, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char z + 0x08, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x7C, 0x1F, 0x7E, 0x3F, 0x7E, 0x3F, 0x02, 0x20, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char { + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char | + 0x08, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x02, 0x20, 0x7E, 0x3F, 0x7E, 0x3F, 0x7C, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char } + 0x09, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x60, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char ~ + }; \ No newline at end of file diff --git a/ili9341/fonts/Dejavu24x43.c b/ili9341/fonts/Dejavu24x43.c new file mode 100644 index 0000000..8307a63 --- /dev/null +++ b/ili9341/fonts/Dejavu24x43.c @@ -0,0 +1,108 @@ +// +// dejavu_sans_mono_28pt +// Font Size: 24x43px +// Created: 01-12-2023 17:23:29 +// +//#include +// +// Pseudocode for retrieving data for a specific character: +// +// bytes_per_char = font_height * (font_width / 8 + ((font_width % 8) ? 1 : 0)) +// offset = (ascii_code(character) - ascii_code(' ')) * bytes_per_char +// data = dejavu_sans_mono_28pt[offset] +// +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x20 (32: ' ') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xE1, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xE1, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xE1, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xE1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x21 (33: '!') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x22 (34: '"') +0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x80, 0x03, 0x07, 0x00, 0x00, 0x00, 0x80, 0x03, 0x87, 0x03, 0x00, 0x00, 0x80, 0x03, 0xFF, 0x03, 0x00, 0x00, 0x80, 0x83, 0xFF, 0x03, 0x00, 0x00, 0x80, 0xFB, 0x7F, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x07, 0x00, 0x00, 0x80, 0xFF, 0x07, 0x07, 0x00, 0x00, 0x80, 0xBF, 0x03, 0x07, 0x03, 0x00, 0x80, 0x83, 0x03, 0xF7, 0x03, 0x00, 0x00, 0x80, 0x03, 0xFF, 0x03, 0x00, 0x00, 0x80, 0xF3, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x07, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x07, 0x00, 0x00, 0x80, 0x87, 0x03, 0x07, 0x00, 0x00, 0x00, 0x80, 0x03, 0x07, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x23 (35: '#') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x07, 0xE0, 0x00, 0x00, 0x00, 0xF0, 0x1F, 0xC0, 0x01, 0x00, 0x00, 0xF8, 0x1F, 0xC0, 0x01, 0x00, 0x00, 0xF8, 0x3F, 0x80, 0x01, 0x00, 0x00, 0x3C, 0x3C, 0x80, 0x03, 0x00, 0x00, 0x1C, 0x78, 0x80, 0x03, 0x00, 0x00, 0x1C, 0x70, 0x80, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x1C, 0x70, 0x80, 0x03, 0x00, 0x00, 0x1C, 0xF0, 0x80, 0x03, 0x00, 0x00, 0x1C, 0xE0, 0xC0, 0x03, 0x00, 0x00, 0x1C, 0xE0, 0xE1, 0x01, 0x00, 0x00, 0x38, 0xC0, 0xFF, 0x01, 0x00, 0x00, 0x38, 0xC0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x24 (36: '$') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x81, 0x01, 0x00, 0x00, 0x00, 0x87, 0x83, 0x00, 0x00, 0x00, 0x80, 0x03, 0xC7, 0x00, 0x00, 0x00, 0x80, 0x01, 0xC6, 0x00, 0x00, 0x00, 0x80, 0x01, 0x66, 0x00, 0x00, 0x00, 0x80, 0x01, 0x66, 0x00, 0x00, 0x00, 0x80, 0x01, 0x66, 0x00, 0x00, 0x00, 0x00, 0x03, 0x37, 0x00, 0x00, 0x00, 0x00, 0x87, 0x33, 0x7E, 0x00, 0x00, 0x00, 0xFE, 0x19, 0xFF, 0x00, 0x00, 0x00, 0x78, 0x98, 0xC3, 0x01, 0x00, 0x00, 0x00, 0xD8, 0x81, 0x03, 0x00, 0x00, 0x00, 0xCC, 0x00, 0x03, 0x00, 0x00, 0x00, 0xCC, 0x00, 0x03, 0x00, 0x00, 0x00, 0xCC, 0x00, 0x03, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x03, 0x00, 0x00, 0x00, 0x86, 0x81, 0x01, 0x00, 0x00, 0x00, 0x83, 0xC3, 0x01, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x25 (37: '%') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0x00, 0x7C, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0x3D, 0xF0, 0x01, 0x00, 0x00, 0xFF, 0x1F, 0xE0, 0x01, 0x00, 0x00, 0xFF, 0x0F, 0xC0, 0x03, 0x00, 0x80, 0x87, 0x3F, 0xC0, 0x03, 0x00, 0x80, 0x03, 0x7F, 0x80, 0x03, 0x00, 0x80, 0x03, 0xFC, 0x80, 0x03, 0x00, 0x80, 0x03, 0xF8, 0x83, 0x03, 0x00, 0x80, 0x03, 0xF0, 0x87, 0x03, 0x00, 0x80, 0x03, 0xC0, 0x8F, 0x01, 0x00, 0x00, 0x03, 0x80, 0xFF, 0x01, 0x00, 0x00, 0x07, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x00, 0xF0, 0xDF, 0x03, 0x00, 0x00, 0x00, 0xF0, 0x87, 0x03, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x26 (38: '&') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x27 (39: ''') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x07, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x01, 0xF0, 0x1F, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x7E, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x70, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x28 (40: '(') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x78, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0x01, 0xF0, 0x1F, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xC0, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x29 (41: ')') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x18, 0x06, 0x00, 0x00, 0x00, 0x00, 0x38, 0x07, 0x00, 0x00, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x00, 0x00, 0x38, 0x06, 0x00, 0x00, 0x00, 0x00, 0x18, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x2a (42: '*') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x2b (43: '+') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x2c (44: ',') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x2d (45: '-') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x2e (46: '.') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x2f (47: '/') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x7F, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x01, 0x00, 0x80, 0x07, 0x18, 0xC0, 0x03, 0x00, 0x80, 0x03, 0x3C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x3C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x18, 0x80, 0x03, 0x00, 0x80, 0x07, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x7F, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x30 (48: '0') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x31 (49: '1') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x07, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x07, 0x00, 0xF8, 0x03, 0x00, 0x80, 0x07, 0x00, 0xFC, 0x03, 0x00, 0x80, 0x03, 0x00, 0xBE, 0x03, 0x00, 0x80, 0x03, 0x00, 0x9F, 0x03, 0x00, 0x80, 0x03, 0x80, 0x8F, 0x03, 0x00, 0x80, 0x03, 0xC0, 0x8F, 0x03, 0x00, 0x80, 0x03, 0xE0, 0x87, 0x03, 0x00, 0x80, 0x07, 0xF0, 0x83, 0x03, 0x00, 0x00, 0x07, 0xF8, 0x81, 0x03, 0x00, 0x00, 0x1F, 0xFE, 0x80, 0x03, 0x00, 0x00, 0xFF, 0x7F, 0x80, 0x03, 0x00, 0x00, 0xFE, 0x3F, 0x80, 0x03, 0x00, 0x00, 0xFC, 0x1F, 0x80, 0x03, 0x00, 0x00, 0xF0, 0x07, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x32 (50: '2') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x07, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x07, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x07, 0x3E, 0xC0, 0x03, 0x00, 0x00, 0x0F, 0x37, 0xC0, 0x01, 0x00, 0x00, 0xFF, 0xF7, 0xF0, 0x01, 0x00, 0x00, 0xFE, 0xF3, 0xFF, 0x01, 0x00, 0x00, 0xFC, 0xE3, 0xFF, 0x00, 0x00, 0x00, 0xF8, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x33 (51: '3') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x0E, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x0E, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x0E, 0x00, 0x00, 0x00, 0x78, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x0E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x0E, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x34 (52: '4') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x80, 0xFF, 0x0F, 0xC0, 0x01, 0x00, 0x80, 0xFF, 0x0F, 0x80, 0x03, 0x00, 0x80, 0xFF, 0x07, 0x80, 0x03, 0x00, 0x80, 0xFF, 0x07, 0x80, 0x03, 0x00, 0x80, 0x03, 0x07, 0x80, 0x03, 0x00, 0x80, 0x03, 0x07, 0x80, 0x03, 0x00, 0x80, 0x03, 0x07, 0x80, 0x03, 0x00, 0x80, 0x03, 0x07, 0x80, 0x03, 0x00, 0x80, 0x03, 0x0F, 0x80, 0x03, 0x00, 0x80, 0x03, 0x0F, 0xC0, 0x03, 0x00, 0x80, 0x03, 0x1E, 0xE0, 0x01, 0x00, 0x80, 0x03, 0x3E, 0xF0, 0x01, 0x00, 0x80, 0x03, 0xFC, 0xFF, 0x00, 0x00, 0x80, 0x03, 0xFC, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x35 (53: '5') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0x70, 0xF0, 0x01, 0x00, 0x00, 0x1F, 0x18, 0xC0, 0x01, 0x00, 0x00, 0x0F, 0x0C, 0x80, 0x03, 0x00, 0x80, 0x07, 0x0E, 0x80, 0x03, 0x00, 0x80, 0x03, 0x0E, 0x80, 0x03, 0x00, 0x80, 0x03, 0x0E, 0x80, 0x03, 0x00, 0x80, 0x03, 0x0E, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1E, 0xC0, 0x03, 0x00, 0x80, 0x03, 0x7C, 0xF0, 0x01, 0x00, 0x80, 0x03, 0xFC, 0xFF, 0x01, 0x00, 0x00, 0x07, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x36 (54: '6') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x02, 0x00, 0x80, 0x03, 0x00, 0xC0, 0x03, 0x00, 0x80, 0x03, 0x00, 0xF8, 0x03, 0x00, 0x80, 0x03, 0x00, 0xFF, 0x03, 0x00, 0x80, 0x03, 0xE0, 0xFF, 0x01, 0x00, 0x80, 0x03, 0xFC, 0x3F, 0x00, 0x00, 0x80, 0x83, 0xFF, 0x0F, 0x00, 0x00, 0x80, 0xF3, 0xFF, 0x01, 0x00, 0x00, 0x80, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x37 (55: '7') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0xF8, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0xFE, 0xE3, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xF3, 0xFF, 0x01, 0x00, 0x00, 0xFF, 0x77, 0xE0, 0x01, 0x00, 0x80, 0x0F, 0x37, 0xC0, 0x03, 0x00, 0x80, 0x07, 0x1E, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x07, 0x1E, 0x80, 0x03, 0x00, 0x80, 0x0F, 0x37, 0xC0, 0x03, 0x00, 0x00, 0xFF, 0x77, 0xE0, 0x01, 0x00, 0x00, 0xFF, 0xF3, 0xFF, 0x01, 0x00, 0x00, 0xFE, 0xE3, 0xFF, 0x00, 0x00, 0x00, 0xF8, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x38 (56: '8') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0xC0, 0x01, 0x00, 0x00, 0xFF, 0x7F, 0x80, 0x03, 0x00, 0x00, 0x0F, 0x78, 0x80, 0x03, 0x00, 0x80, 0x07, 0xF0, 0x80, 0x03, 0x00, 0x80, 0x03, 0xE0, 0x80, 0x03, 0x00, 0x80, 0x03, 0xE0, 0x80, 0x03, 0x00, 0x80, 0x03, 0xE0, 0x80, 0x03, 0x00, 0x80, 0x03, 0xE0, 0xC0, 0x03, 0x00, 0x80, 0x03, 0x60, 0xE0, 0x01, 0x00, 0x00, 0x07, 0x30, 0xF0, 0x01, 0x00, 0x00, 0x1F, 0x1C, 0xFE, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x39 (57: '9') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1F, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x1F, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x1F, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x1F, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x1F, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x3a (58: ':') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x80, 0x1F, 0xF0, 0x7F, 0x00, 0x00, 0x80, 0x1F, 0xF0, 0x3F, 0x00, 0x00, 0x80, 0x1F, 0xF0, 0x0F, 0x00, 0x00, 0x80, 0x1F, 0xF0, 0x07, 0x00, 0x00, 0x80, 0x1F, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x3b (59: ';') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x3C, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x38, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x38, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x3c (60: '<') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x3d (61: '=') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x38, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x38, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x3C, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x3e (62: '>') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xF0, 0xE3, 0x03, 0x00, 0x80, 0x03, 0xFC, 0xE3, 0x03, 0x00, 0x80, 0x03, 0xFE, 0xE3, 0x03, 0x00, 0x80, 0x03, 0xFF, 0xE3, 0x03, 0x00, 0x80, 0x83, 0x1F, 0x00, 0x00, 0x00, 0x80, 0xE7, 0x07, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x3f (63: '?') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xE0, 0x0F, 0xE0, 0x0F, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x1F, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x38, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1C, 0xE0, 0x0F, 0x78, 0x00, 0x00, 0x1C, 0xF0, 0x1F, 0x70, 0x00, 0x00, 0x0E, 0xFC, 0x7F, 0x70, 0x00, 0x00, 0x0E, 0x3C, 0x78, 0xE0, 0x00, 0x00, 0x0E, 0x1E, 0xF0, 0xE0, 0x00, 0x00, 0x0E, 0x0E, 0xE0, 0xE0, 0x00, 0x00, 0x0E, 0x0E, 0xE0, 0xE0, 0x00, 0x00, 0x0E, 0x0E, 0xE0, 0xE0, 0x00, 0x00, 0x1E, 0x0E, 0xE0, 0xE0, 0x00, 0x00, 0x3C, 0x1C, 0x70, 0xF0, 0x00, 0x00, 0xFC, 0x38, 0x38, 0x70, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x40 (64: '@') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xFC, 0x7F, 0x07, 0x00, 0x00, 0x80, 0xFF, 0x0F, 0x07, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x07, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x07, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x07, 0x00, 0x00, 0x80, 0xFF, 0x0F, 0x07, 0x00, 0x00, 0x00, 0xFC, 0x7F, 0x07, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x41 (65: 'A') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x07, 0x3E, 0xC0, 0x03, 0x00, 0x00, 0x0F, 0x37, 0xC0, 0x03, 0x00, 0x00, 0xFF, 0xF7, 0xE0, 0x01, 0x00, 0x00, 0xFE, 0xF7, 0xFF, 0x01, 0x00, 0x00, 0xFC, 0xE3, 0xFF, 0x00, 0x00, 0x00, 0xF8, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x42 (66: 'B') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x01, 0x00, 0x80, 0x07, 0x00, 0xC0, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x07, 0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x1E, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x43 (67: 'C') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x07, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x07, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x1F, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x7E, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x44 (68: 'D') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x45 (69: 'E') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x46 (70: 'F') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x1F, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x0F, 0x00, 0xC0, 0x01, 0x00, 0x80, 0x07, 0x00, 0xC0, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x70, 0x80, 0x03, 0x00, 0x80, 0x03, 0x70, 0x80, 0x03, 0x00, 0x80, 0x03, 0x70, 0x80, 0x03, 0x00, 0x80, 0x07, 0x70, 0xC0, 0x03, 0x00, 0x00, 0x07, 0xF0, 0xFF, 0x01, 0x00, 0x00, 0x0F, 0xF0, 0xFF, 0x01, 0x00, 0x00, 0x1E, 0xF0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x47 (71: 'G') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x48 (72: 'H') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x49 (73: 'I') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0xC0, 0x03, 0x00, 0x80, 0x03, 0x00, 0xE0, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x80, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x4a (74: 'J') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xF0, 0xF1, 0x07, 0x00, 0x00, 0x00, 0xF8, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x7C, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x0F, 0x00, 0xFC, 0x01, 0x00, 0x80, 0x07, 0x00, 0xF8, 0x03, 0x00, 0x80, 0x03, 0x00, 0xE0, 0x03, 0x00, 0x80, 0x01, 0x00, 0xC0, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x4b (75: 'K') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x4c (76: 'L') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x4d (77: 'M') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x4e (78: 'N') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x3F, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x01, 0x00, 0x80, 0x07, 0x00, 0xC0, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x07, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x7F, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x4f (79: 'O') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0x00, 0x80, 0x07, 0x78, 0x00, 0x00, 0x00, 0x80, 0x07, 0x78, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3E, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x50 (80: 'P') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x3F, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x01, 0x00, 0x80, 0x07, 0x00, 0xC0, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x07, 0x00, 0x80, 0x07, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x3F, 0x00, 0x00, 0x7F, 0x00, 0xFC, 0x7D, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x38, 0x00, 0x00, 0xFC, 0xFF, 0x7F, 0x30, 0x00, 0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x51 (81: 'Q') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0x00, 0x80, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x80, 0x07, 0xF0, 0x01, 0x00, 0x00, 0x80, 0x07, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x1F, 0xDC, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x9F, 0x3F, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0xFF, 0x00, 0x00, 0x00, 0xFC, 0x0F, 0xFE, 0x03, 0x00, 0x00, 0xF0, 0x03, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x52 (82: 'R') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xF0, 0x00, 0x00, 0x00, 0xFC, 0x07, 0xE0, 0x01, 0x00, 0x00, 0xFE, 0x0F, 0xC0, 0x01, 0x00, 0x00, 0xFF, 0x0F, 0xC0, 0x01, 0x00, 0x00, 0x0F, 0x1F, 0x80, 0x03, 0x00, 0x80, 0x07, 0x1E, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1E, 0x80, 0x03, 0x00, 0x80, 0x03, 0x3C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x3C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x3C, 0x80, 0x03, 0x00, 0x80, 0x03, 0x7C, 0xC0, 0x03, 0x00, 0x80, 0x07, 0x78, 0xC0, 0x03, 0x00, 0x00, 0x07, 0xF8, 0xE0, 0x01, 0x00, 0x00, 0x0F, 0xF0, 0xFF, 0x01, 0x00, 0x00, 0x1E, 0xF0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x53 (83: 'S') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x54 (84: 'T') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x55 (85: 'U') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0x00, 0x00, 0x80, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x56 (86: 'V') +0x18, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x57 (87: 'W') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x80, 0x01, 0x00, 0xC0, 0x03, 0x00, 0x80, 0x07, 0x00, 0xF0, 0x03, 0x00, 0x80, 0x1F, 0x00, 0xF8, 0x03, 0x00, 0x80, 0x3F, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xFF, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFC, 0xC1, 0x3F, 0x00, 0x00, 0x00, 0xF8, 0xF7, 0x0F, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xF8, 0xE7, 0x0F, 0x00, 0x00, 0x00, 0xFC, 0xC1, 0x3F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x7F, 0x00, 0x00, 0x80, 0x3F, 0x00, 0xFE, 0x01, 0x00, 0x80, 0x0F, 0x00, 0xF8, 0x03, 0x00, 0x80, 0x07, 0x00, 0xE0, 0x03, 0x00, 0x80, 0x01, 0x00, 0xC0, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x58 (88: 'X') +0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x59 (89: 'Y') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xC0, 0x03, 0x00, 0x80, 0x03, 0x00, 0xE0, 0x03, 0x00, 0x80, 0x03, 0x00, 0xF8, 0x03, 0x00, 0x80, 0x03, 0x00, 0xFC, 0x03, 0x00, 0x80, 0x03, 0x00, 0xFF, 0x03, 0x00, 0x80, 0x03, 0xC0, 0xBF, 0x03, 0x00, 0x80, 0x03, 0xE0, 0x8F, 0x03, 0x00, 0x80, 0x03, 0xF8, 0x87, 0x03, 0x00, 0x80, 0x03, 0xFE, 0x81, 0x03, 0x00, 0x80, 0x03, 0xFF, 0x80, 0x03, 0x00, 0x80, 0xC3, 0x3F, 0x80, 0x03, 0x00, 0x80, 0xE3, 0x0F, 0x80, 0x03, 0x00, 0x80, 0xFB, 0x07, 0x80, 0x03, 0x00, 0x80, 0xFF, 0x01, 0x80, 0x03, 0x00, 0x80, 0x7F, 0x00, 0x80, 0x03, 0x00, 0x80, 0x3F, 0x00, 0x80, 0x03, 0x00, 0x80, 0x0F, 0x00, 0x80, 0x03, 0x00, 0x80, 0x07, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x5a (90: 'Z') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x70, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x70, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x70, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x5b (91: '[') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x5c (92: '\') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x70, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x70, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x70, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x70, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x5d (93: ']') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x5e (94: '^') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x5f (95: '_') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x60 (96: '`') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x87, 0xFF, 0x00, 0x00, 0x00, 0x80, 0x83, 0xFF, 0x01, 0x00, 0x00, 0x80, 0xC3, 0xFF, 0x01, 0x00, 0x00, 0x80, 0xC1, 0xC3, 0x03, 0x00, 0x00, 0xC0, 0xE1, 0xC1, 0x03, 0x00, 0x00, 0xC0, 0xE1, 0x80, 0x03, 0x00, 0x00, 0xC0, 0xE1, 0x80, 0x03, 0x00, 0x00, 0xC0, 0xE1, 0x80, 0x03, 0x00, 0x00, 0xC0, 0xE1, 0x80, 0x03, 0x00, 0x00, 0xC0, 0xE1, 0xC0, 0x01, 0x00, 0x00, 0xC0, 0xE3, 0xE0, 0x00, 0x00, 0x00, 0x80, 0xE7, 0x70, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x61 (97: 'a') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x80, 0x03, 0xC0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x03, 0xC0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0xF0, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x62 (98: 'b') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0x1F, 0xF8, 0x01, 0x00, 0x00, 0x80, 0x07, 0xE0, 0x01, 0x00, 0x00, 0xC0, 0x03, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x03, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x80, 0x01, 0x00, 0x00, 0x80, 0x03, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x63 (99: 'c') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x80, 0x0F, 0xF0, 0x01, 0x00, 0x00, 0xC0, 0x03, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x80, 0x01, 0x00, 0x00, 0x80, 0x03, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x64 (100: 'd') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xCF, 0xF1, 0x01, 0x00, 0x00, 0x80, 0xC7, 0xE1, 0x01, 0x00, 0x00, 0xC0, 0xC3, 0xC1, 0x03, 0x00, 0x00, 0xC0, 0xC1, 0x81, 0x03, 0x00, 0x00, 0xC0, 0xC1, 0x81, 0x03, 0x00, 0x00, 0xC0, 0xC1, 0x81, 0x03, 0x00, 0x00, 0xC0, 0xC1, 0x81, 0x03, 0x00, 0x00, 0xC0, 0xC1, 0x81, 0x03, 0x00, 0x00, 0xC0, 0xC3, 0x81, 0x03, 0x00, 0x00, 0x80, 0xCF, 0xC1, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xC1, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xC1, 0x01, 0x00, 0x00, 0x00, 0xFE, 0xE1, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x65 (101: 'e') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xC3, 0x01, 0x00, 0x00, 0x00, 0xC0, 0xC1, 0x01, 0x00, 0x00, 0x00, 0xC0, 0xC1, 0x01, 0x00, 0x00, 0x00, 0xC0, 0xC1, 0x01, 0x00, 0x00, 0x00, 0xC0, 0xC1, 0x01, 0x00, 0x00, 0x00, 0xC0, 0xC1, 0x01, 0x00, 0x00, 0x00, 0xC0, 0xC1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x66 (102: 'f') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xC1, 0x01, 0x00, 0x80, 0x0F, 0xF0, 0xC1, 0x01, 0x00, 0xC0, 0x03, 0xC0, 0x83, 0x03, 0x00, 0xC0, 0x03, 0xC0, 0x83, 0x03, 0x00, 0xC0, 0x01, 0x80, 0x83, 0x03, 0x00, 0xC0, 0x01, 0x80, 0x83, 0x03, 0x00, 0xC0, 0x01, 0x80, 0x83, 0x03, 0x00, 0x80, 0x01, 0x80, 0xC1, 0x03, 0x00, 0x80, 0x03, 0xC0, 0xC1, 0x03, 0x00, 0x00, 0x0F, 0x70, 0xF0, 0x01, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x67 (103: 'g') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x68 (104: 'h') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0xC0, 0xC3, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xC3, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xC3, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xC3, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x69 (105: 'i') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xC0, 0x01, 0x00, 0x80, 0x03, 0x00, 0xC0, 0x01, 0x00, 0x80, 0x03, 0x00, 0xC0, 0x01, 0x00, 0x80, 0x03, 0x00, 0xC0, 0x01, 0x00, 0x80, 0x03, 0x00, 0xC0, 0x01, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x01, 0x00, 0xE0, 0x03, 0xC0, 0xC3, 0xFF, 0xFF, 0xFF, 0x01, 0xC0, 0xC3, 0xFF, 0xFF, 0xFF, 0x01, 0xC0, 0xC3, 0xFF, 0xFF, 0xFF, 0x00, 0xC0, 0xC3, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x6a (106: 'j') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0x00, 0x80, 0x0F, 0xFC, 0x01, 0x00, 0x00, 0xC0, 0x07, 0xF8, 0x03, 0x00, 0x00, 0xC0, 0x03, 0xE0, 0x03, 0x00, 0x00, 0xC0, 0x01, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x03, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x6b (107: 'k') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x6c (108: 'l') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x6d (109: 'm') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x6e (110: 'n') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x80, 0x0F, 0xF0, 0x01, 0x00, 0x00, 0xC0, 0x03, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x03, 0xC0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0xF0, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x6f (111: 'o') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x80, 0x03, 0xC0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x03, 0xC0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0xF0, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x70 (112: 'p') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x80, 0x0F, 0xF0, 0x01, 0x00, 0x00, 0xC0, 0x03, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x80, 0x01, 0x00, 0x00, 0x80, 0x03, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x71 (113: 'q') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x72 (114: 'r') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xC0, 0x01, 0x00, 0x00, 0x80, 0xFF, 0x80, 0x01, 0x00, 0x00, 0xC0, 0xF3, 0x81, 0x03, 0x00, 0x00, 0xC0, 0xE1, 0x81, 0x03, 0x00, 0x00, 0xC0, 0xE1, 0x81, 0x03, 0x00, 0x00, 0xC0, 0xE1, 0x81, 0x03, 0x00, 0x00, 0xC0, 0xE1, 0x83, 0x03, 0x00, 0x00, 0xC0, 0xC1, 0xC3, 0x03, 0x00, 0x00, 0xC0, 0xC1, 0xC7, 0x03, 0x00, 0x00, 0x80, 0xC3, 0xFF, 0x01, 0x00, 0x00, 0x80, 0x83, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x87, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x73 (115: 's') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xC0, 0x01, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x74 (116: 't') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x75 (117: 'u') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x76 (118: 'v') +0x18, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xC0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x77 (119: 'w') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x07, 0xF0, 0x03, 0x00, 0x00, 0xC0, 0x0F, 0xF8, 0x03, 0x00, 0x00, 0x80, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x80, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0xC0, 0x0F, 0xF8, 0x01, 0x00, 0x00, 0xC0, 0x07, 0xF0, 0x03, 0x00, 0x00, 0xC0, 0x01, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x80, 0x03, 0x00, 0x00, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x78 (120: 'x') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x80, 0x03, 0x00, 0xC0, 0x1F, 0x00, 0x80, 0x03, 0x00, 0xC0, 0x7F, 0x00, 0x80, 0x03, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0x03, 0x00, 0x00, 0xFE, 0x0F, 0xE0, 0x03, 0x00, 0x00, 0xF0, 0x7F, 0xF8, 0x01, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x79 (121: 'y') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x01, 0xE0, 0x03, 0x00, 0x00, 0xC0, 0x01, 0xF8, 0x03, 0x00, 0x00, 0xC0, 0x01, 0xFC, 0x03, 0x00, 0x00, 0xC0, 0x01, 0xFE, 0x03, 0x00, 0x00, 0xC0, 0x81, 0xBF, 0x03, 0x00, 0x00, 0xC0, 0xC1, 0x9F, 0x03, 0x00, 0x00, 0xC0, 0xF1, 0x87, 0x03, 0x00, 0x00, 0xC0, 0xF9, 0x83, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0x81, 0x03, 0x00, 0x00, 0xC0, 0x7F, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x3F, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x0F, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x07, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x03, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x7a (122: 'z') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0xFE, 0xBF, 0xFF, 0x1F, 0x00, 0x80, 0xFF, 0xBF, 0xFF, 0x7F, 0x00, 0x80, 0xFF, 0x1F, 0xFF, 0x7F, 0x00, 0xC0, 0xFF, 0x0F, 0xFE, 0xFF, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xF0, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x7b (123: '{') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x7c (124: '|') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xF0, 0x00, 0xC0, 0xFF, 0x0F, 0xFE, 0x7F, 0x00, 0x80, 0xFF, 0x1F, 0xFF, 0x7F, 0x00, 0x80, 0xFF, 0xBF, 0xFF, 0x3F, 0x00, 0x00, 0xFE, 0xBF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x7d (125: '}') +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Character 0x7e (126: '~') diff --git a/ili9341/fonts/EspressoDolce18x24.c b/ili9341/fonts/EspressoDolce18x24.c new file mode 100644 index 0000000..8a415fa --- /dev/null +++ b/ili9341/fonts/EspressoDolce18x24.c @@ -0,0 +1,110 @@ + +//WARNING: This Font Require X-GLCD Lib. +// You can not use it with MikroE GLCD Lib. + +//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0 +//MikroElektronika 2011 +//http://www.mikroe.com + +//GLCD FontName : Espresso_Dolce18x24 +//GLCD FontSize : 18 x 24 + +const unsigned short Espresso_Dolce18x24[] = { + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + 0x03, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x07, 0xFC, 0x3F, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! + 0x03, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char " + 0x0D, 0x00, 0x41, 0x00, 0x80, 0x61, 0x00, 0x80, 0xE3, 0x03, 0x80, 0xFF, 0x03, 0xE0, 0xFF, 0x01, 0xE0, 0xE3, 0x00, 0x80, 0xE3, 0x00, 0x80, 0xE3, 0x01, 0x80, 0xFF, 0x03, 0xE0, 0xFF, 0x03, 0xE0, 0xEF, 0x00, 0x80, 0xE3, 0x00, 0x80, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char # + 0x0B, 0x00, 0x30, 0x00, 0xC0, 0xF1, 0x00, 0xF0, 0xF3, 0x01, 0xF0, 0xC7, 0x01, 0xF8, 0xFF, 0x03, 0xFC, 0xFF, 0x07, 0xF8, 0xFF, 0x03, 0xF0, 0xCE, 0x01, 0xE0, 0xFD, 0x01, 0xC0, 0xFC, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char $ + 0x0F, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFC, 0x01, 0x06, 0x9C, 0x81, 0x07, 0x9C, 0xE3, 0x03, 0xFC, 0xF1, 0x00, 0xF8, 0x7D, 0x00, 0x60, 0x1E, 0x00, 0x80, 0xEF, 0x01, 0xC0, 0xF3, 0x03, 0xF0, 0x39, 0x07, 0x78, 0x38, 0x07, 0x1C, 0x38, 0x07, 0x08, 0xF0, 0x03, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char % + 0x0D, 0x00, 0x60, 0x00, 0x00, 0xF8, 0x01, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0x07, 0xFC, 0x0F, 0x07, 0x9C, 0x3F, 0x07, 0xDC, 0xFB, 0x07, 0xFC, 0xE1, 0x03, 0xF8, 0xF8, 0x03, 0x00, 0xF8, 0x07, 0x00, 0x90, 0x07, 0x00, 0x80, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char & + 0x07, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' + 0x05, 0x00, 0x0E, 0x00, 0xF8, 0xFF, 0x03, 0xFF, 0xFF, 0x1F, 0x1F, 0x00, 0x1F, 0x02, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ( + 0x05, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x1E, 0xFF, 0xFF, 0x1F, 0xFC, 0xFF, 0x07, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ) + 0x08, 0x08, 0x00, 0x00, 0x5C, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char * + 0x0A, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0xC0, 0xFF, 0x00, 0xC0, 0xFF, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + + 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char , + 0x08, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char - + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char . + 0x0A, 0x00, 0x00, 0x18, 0x00, 0x00, 0x1F, 0x00, 0xE0, 0x0F, 0x00, 0xF8, 0x03, 0x00, 0x7F, 0x00, 0xC0, 0x1F, 0x00, 0xF0, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char / + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x00, 0xF8, 0xFF, 0x03, 0x38, 0x80, 0x03, 0x1C, 0x00, 0x07, 0x1C, 0x00, 0x07, 0x1C, 0x00, 0x07, 0x1C, 0x00, 0x07, 0x78, 0xC0, 0x03, 0xF8, 0xFF, 0x03, 0xE0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0 + 0x05, 0x60, 0x00, 0x00, 0x70, 0x00, 0x00, 0x78, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 1 + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0x80, 0x07, 0xF8, 0xC0, 0x07, 0x38, 0xE0, 0x07, 0x1C, 0x70, 0x07, 0x1C, 0x30, 0x07, 0x1C, 0x38, 0x07, 0x1C, 0x1C, 0x07, 0x38, 0x0E, 0x07, 0xF8, 0x0F, 0x07, 0xF0, 0x03, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 2 + 0x0B, 0x00, 0x00, 0x00, 0x08, 0x80, 0x01, 0x0C, 0x80, 0x03, 0x1C, 0x00, 0x07, 0x1C, 0x03, 0x07, 0xDC, 0x03, 0x07, 0xFC, 0x03, 0x07, 0xFC, 0x07, 0x07, 0x3C, 0x8F, 0x03, 0x1C, 0xFE, 0x01, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 3 + 0x0B, 0x00, 0x40, 0x00, 0x80, 0xFF, 0x00, 0xFC, 0xFF, 0x00, 0xFC, 0xE3, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xF8, 0x03, 0x00, 0xFC, 0x07, 0x00, 0xFC, 0x07, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 4 + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0x87, 0x03, 0xFC, 0x07, 0x03, 0xFC, 0x03, 0x07, 0x9C, 0x03, 0x07, 0x9C, 0x03, 0x07, 0x9C, 0x03, 0x07, 0x9C, 0x03, 0x07, 0x0C, 0xFF, 0x03, 0x00, 0xFE, 0x01, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 5 + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x00, 0xE0, 0xFF, 0x03, 0xF0, 0x87, 0x03, 0xB8, 0x03, 0x07, 0x9C, 0x03, 0x07, 0x8C, 0x03, 0x07, 0x80, 0x03, 0x07, 0x00, 0xCF, 0x03, 0x00, 0xFE, 0x01, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 6 + 0x0A, 0x08, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0xC0, 0x07, 0x1C, 0xFC, 0x07, 0x9C, 0xFF, 0x03, 0xFC, 0x07, 0x00, 0xFC, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 7 + 0x0C, 0x00, 0x00, 0x00, 0x60, 0xF8, 0x01, 0xF8, 0xFD, 0x03, 0xF8, 0x1F, 0x03, 0x9C, 0x0F, 0x07, 0x1C, 0x07, 0x07, 0x1C, 0x07, 0x07, 0x9C, 0x0F, 0x07, 0xF8, 0x0F, 0x07, 0xF8, 0xFD, 0x03, 0x00, 0xF8, 0x01, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 8 + 0x0B, 0x80, 0x01, 0x00, 0xF0, 0x0F, 0x00, 0xF8, 0x1F, 0x00, 0x38, 0x1C, 0x00, 0x1C, 0x38, 0x02, 0x1C, 0x38, 0x07, 0x1C, 0xB8, 0x07, 0x1C, 0xF8, 0x03, 0x78, 0xFE, 0x01, 0xF0, 0x7F, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 9 + 0x03, 0x00, 0x00, 0x00, 0x00, 0x38, 0x07, 0x00, 0x18, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char : + 0x04, 0x00, 0x00, 0x08, 0x00, 0x10, 0x1C, 0x00, 0x38, 0x1E, 0x00, 0x30, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ; + 0x0B, 0x00, 0x30, 0x00, 0x00, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xCE, 0x01, 0x00, 0xCE, 0x01, 0x00, 0x87, 0x03, 0x00, 0x87, 0x03, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char < + 0x0A, 0x00, 0x00, 0x00, 0x80, 0x31, 0x00, 0x80, 0x73, 0x00, 0x80, 0x73, 0x00, 0x80, 0x73, 0x00, 0x80, 0x73, 0x00, 0x80, 0x73, 0x00, 0x80, 0x73, 0x00, 0x80, 0x73, 0x00, 0x80, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char = + 0x0C, 0x00, 0x00, 0x00, 0x80, 0x01, 0x06, 0x80, 0x03, 0x07, 0x00, 0x87, 0x03, 0x00, 0x87, 0x03, 0x00, 0xCE, 0x01, 0x00, 0xCE, 0x01, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char > + 0x0A, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x78, 0x06, 0x1C, 0x7C, 0x07, 0x1C, 0x0C, 0x00, 0x38, 0x0E, 0x00, 0xF8, 0x07, 0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ? + 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x00, 0xFC, 0x0F, 0x00, 0x0E, 0x1C, 0x00, 0xE7, 0x39, 0x80, 0xFB, 0x3B, 0x80, 0x3B, 0x37, 0x80, 0x1F, 0x77, 0x80, 0x1B, 0x37, 0x80, 0x3B, 0x37, 0x80, 0xFB, 0x3B, 0x00, 0xFF, 0x3F, 0x00, 0x0E, 0x17, 0x00, 0xFC, 0x07, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char @ + 0x0D, 0x00, 0x00, 0x02, 0x00, 0xE0, 0x07, 0x00, 0xFE, 0x07, 0xE0, 0xFF, 0x00, 0xFC, 0xEF, 0x00, 0x7C, 0xE0, 0x00, 0x1C, 0xE0, 0x00, 0x7C, 0xE0, 0x00, 0xFC, 0xE7, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0xFF, 0x03, 0x00, 0xF0, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char A + 0x0B, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x1C, 0x07, 0x07, 0x1C, 0x07, 0x07, 0x1C, 0x07, 0x07, 0x1C, 0x07, 0x07, 0xFC, 0x07, 0x07, 0xF8, 0xFF, 0x07, 0xE0, 0xFC, 0x03, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char B + 0x0B, 0x00, 0x04, 0x00, 0xC0, 0x7F, 0x00, 0xF0, 0xFF, 0x01, 0x78, 0xC0, 0x03, 0x38, 0x80, 0x03, 0x1C, 0x00, 0x07, 0x1C, 0x00, 0x07, 0x1C, 0x00, 0x07, 0x1C, 0x00, 0x07, 0x38, 0x80, 0x03, 0x30, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char C + 0x0B, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x1C, 0x00, 0x07, 0x1C, 0x00, 0x07, 0x1C, 0x00, 0x07, 0x1C, 0x00, 0x07, 0x78, 0xC0, 0x03, 0xF0, 0xFF, 0x01, 0xE0, 0xFF, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char D + 0x0A, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x1C, 0x07, 0x07, 0x1C, 0x07, 0x07, 0x1C, 0x07, 0x07, 0x1C, 0x06, 0x07, 0x1C, 0x00, 0x07, 0x1C, 0x00, 0x07, 0x0C, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char E + 0x0A, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x1C, 0x07, 0x00, 0x1C, 0x07, 0x00, 0x1C, 0x07, 0x00, 0x1C, 0x06, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F + 0x0B, 0x00, 0x04, 0x00, 0xC0, 0x7F, 0x00, 0xF0, 0xFF, 0x01, 0x78, 0xC0, 0x03, 0x38, 0x80, 0x03, 0x1C, 0x08, 0x07, 0x1C, 0x1C, 0x07, 0x1C, 0x1C, 0x07, 0x1C, 0x1C, 0x07, 0x38, 0xFC, 0x03, 0x30, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char G + 0x0B, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char H + 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I + 0x09, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x03, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0xF8, 0xFF, 0x03, 0xFC, 0xFF, 0x01, 0xFC, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char J + 0x0C, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x3C, 0x00, 0x00, 0x0F, 0x00, 0x80, 0x0F, 0x00, 0xC0, 0x1F, 0x00, 0xF0, 0x7C, 0x00, 0x78, 0xF0, 0x01, 0x3C, 0xE0, 0x03, 0x0C, 0x80, 0x07, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char K + 0x0A, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char L + 0x10, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xF8, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1F, 0x00, 0xC0, 0x07, 0x00, 0xF0, 0x01, 0x00, 0xF8, 0xFF, 0x03, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char M + 0x0C, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xF8, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF0, 0x01, 0xF8, 0xFF, 0x03, 0xFC, 0xFF, 0x07, 0xF8, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char N + 0x0D, 0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0xF0, 0xFF, 0x01, 0x78, 0xC0, 0x03, 0x38, 0x80, 0x03, 0x1C, 0x00, 0x07, 0x1C, 0x00, 0x07, 0x1C, 0x00, 0x07, 0x1C, 0x00, 0x07, 0x38, 0x80, 0x03, 0xF0, 0xF1, 0x01, 0xE0, 0xFF, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char O + 0x0B, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x1C, 0x1C, 0x00, 0x1C, 0x1C, 0x00, 0x1C, 0x1C, 0x00, 0x1C, 0x1C, 0x00, 0x1C, 0x1C, 0x00, 0xFC, 0x1F, 0x00, 0xF8, 0x0F, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char P + 0x0D, 0x00, 0x0E, 0x00, 0xC0, 0x7F, 0x00, 0xF0, 0xFF, 0x01, 0x78, 0xC0, 0x03, 0x3C, 0x80, 0x07, 0x1C, 0x10, 0x07, 0x1C, 0x78, 0x06, 0x1C, 0xF0, 0x07, 0x1C, 0xE0, 0x07, 0x78, 0x80, 0x0F, 0xF0, 0xFF, 0x1F, 0xE0, 0xFF, 0x1C, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Q + 0x0B, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x1C, 0x1C, 0x00, 0x1C, 0x1C, 0x00, 0x1C, 0x3C, 0x00, 0x1C, 0x7C, 0x00, 0x1C, 0xFC, 0x01, 0xFC, 0xDF, 0x07, 0xF8, 0x8F, 0x07, 0xE0, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char R + 0x0E, 0x00, 0x20, 0x00, 0xE0, 0xF0, 0x01, 0xF0, 0xE1, 0x01, 0xF8, 0x83, 0x03, 0x1C, 0x03, 0x07, 0x1C, 0x07, 0x07, 0x1C, 0x07, 0x07, 0x1C, 0x07, 0x07, 0x1C, 0x06, 0x07, 0x1C, 0x06, 0x07, 0x78, 0x8E, 0x03, 0xF0, 0xFC, 0x03, 0x60, 0xF8, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char S + 0x0B, 0x08, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T + 0x0B, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x03, 0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0xF8, 0xFF, 0x03, 0xFC, 0xFF, 0x01, 0xFC, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char U + 0x0C, 0x08, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xFC, 0x07, 0x00, 0xE0, 0x3F, 0x00, 0x00, 0xFE, 0x01, 0x00, 0xF0, 0x07, 0x00, 0xF0, 0x07, 0x00, 0xFE, 0x01, 0xC0, 0x3F, 0x00, 0xF8, 0x07, 0x00, 0xFC, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char V + 0x12, 0x08, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xFC, 0x03, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xF0, 0x07, 0x00, 0xE0, 0x07, 0x00, 0xFE, 0x03, 0x80, 0x3F, 0x00, 0x80, 0x3F, 0x00, 0x00, 0xFE, 0x01, 0x00, 0xF0, 0x07, 0x00, 0xE0, 0x07, 0x00, 0xFE, 0x03, 0xC0, 0x3F, 0x00, 0xF8, 0x07, 0x00, 0xFC, 0x00, 0x00, 0x1C, 0x00, 0x00, // Code for char W + 0x0C, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x07, 0x7C, 0xC0, 0x07, 0xF8, 0xE0, 0x03, 0xE0, 0xFB, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x1F, 0x00, 0xC0, 0x7F, 0x00, 0xE0, 0xF1, 0x00, 0xF8, 0xE0, 0x03, 0x3C, 0x80, 0x07, 0x0C, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char X + 0x0C, 0x08, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF8, 0x01, 0x00, 0xE0, 0x07, 0x00, 0x80, 0x1F, 0x00, 0x00, 0xFC, 0x07, 0x00, 0xFC, 0x07, 0x80, 0x3F, 0x00, 0xE0, 0x07, 0x00, 0xF8, 0x01, 0x00, 0x7C, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Y + 0x0D, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x07, 0x1C, 0x80, 0x07, 0x1C, 0xE0, 0x07, 0x1C, 0xF0, 0x07, 0x1C, 0x78, 0x07, 0x1C, 0x1E, 0x07, 0x1C, 0x0F, 0x07, 0xDC, 0x07, 0x07, 0xFC, 0x01, 0x07, 0xFC, 0x00, 0x07, 0x3C, 0x00, 0x07, 0x1C, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Z + 0x05, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0x03, 0x00, 0x18, 0x03, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [ + 0x0A, 0x03, 0x00, 0x00, 0x1F, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xF8, 0x03, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xF8, 0x03, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash + 0x05, 0x02, 0x00, 0x08, 0x03, 0x00, 0x18, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFE, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ] + 0x09, 0x00, 0x08, 0x00, 0x00, 0x1F, 0x00, 0xE0, 0x1F, 0x00, 0xFC, 0x03, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x03, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ^ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char _ + 0x04, 0x0C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ` + 0x0C, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x01, 0x00, 0xFB, 0x03, 0x80, 0x3B, 0x07, 0x80, 0x1B, 0x07, 0x80, 0x1F, 0x07, 0x80, 0x1B, 0x07, 0x80, 0x1B, 0x07, 0x00, 0xFF, 0x03, 0x00, 0xFF, 0x07, 0x00, 0xFC, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char a + 0x0B, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x00, 0x87, 0x03, 0x00, 0xFE, 0x01, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char b + 0x0B, 0x00, 0x10, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x87, 0x03, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x00, 0x87, 0x03, 0x00, 0x86, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char c + 0x0B, 0x00, 0x78, 0x00, 0x00, 0xFE, 0x01, 0x00, 0xFF, 0x03, 0x00, 0x87, 0x03, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0xF8, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char d + 0x0C, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFE, 0x01, 0x00, 0xBF, 0x03, 0x80, 0x3B, 0x07, 0x80, 0x3B, 0x07, 0x80, 0x3B, 0x07, 0x80, 0x3B, 0x07, 0x80, 0x3B, 0x07, 0x00, 0xBF, 0x03, 0x00, 0x3E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char e + 0x0A, 0x00, 0x01, 0x00, 0x80, 0x01, 0x00, 0xC0, 0xFF, 0x03, 0xF0, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x9C, 0x03, 0x00, 0x9C, 0x01, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char f + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x38, 0x00, 0xFE, 0x79, 0x00, 0x87, 0x73, 0x80, 0x03, 0xE7, 0x80, 0x03, 0xE7, 0x80, 0x03, 0xE7, 0x80, 0x03, 0xE7, 0x80, 0x03, 0x77, 0x80, 0xFF, 0x7F, 0x80, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char g + 0x0B, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x07, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x00, 0xFF, 0x07, 0x00, 0xFF, 0x07, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char h + 0x03, 0x00, 0x00, 0x00, 0x9C, 0xFF, 0x07, 0x8C, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char i + 0x08, 0x00, 0x00, 0x60, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xF0, 0x9C, 0xFF, 0x7F, 0x8C, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j + 0x0A, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xE7, 0x01, 0x80, 0xC3, 0x03, 0x80, 0x01, 0x07, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char k + 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char l + 0x10, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x07, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0xFF, 0x07, 0x00, 0xFF, 0x07, 0x00, 0xFF, 0x03, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0xFF, 0x03, 0x00, 0xFF, 0x07, 0x00, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char m + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x07, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x00, 0xFF, 0x07, 0x00, 0xFF, 0x07, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char n + 0x0C, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x87, 0x03, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x00, 0xC7, 0x03, 0x00, 0xFE, 0x01, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char o + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x00, 0x87, 0x03, 0x00, 0xFE, 0x01, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char p + 0x0B, 0x00, 0x78, 0x00, 0x00, 0xFE, 0x01, 0x00, 0xFF, 0x03, 0x00, 0x87, 0x03, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x00, 0xFF, 0x7F, 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char q + 0x09, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char r + 0x0B, 0x00, 0x80, 0x00, 0x00, 0xCE, 0x01, 0x00, 0x9F, 0x03, 0x80, 0x1B, 0x07, 0x80, 0x1B, 0x07, 0x80, 0x3B, 0x07, 0x80, 0x33, 0x07, 0x80, 0x33, 0x07, 0x00, 0xF7, 0x03, 0x00, 0xE7, 0x03, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char s + 0x07, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0xF0, 0xFF, 0x01, 0xF8, 0xFF, 0x03, 0xF0, 0xFF, 0x07, 0x80, 0x03, 0x07, 0x80, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char t + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x80, 0x07, 0x80, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char u + 0x0B, 0x00, 0x01, 0x00, 0x80, 0x07, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF0, 0x03, 0x00, 0xC0, 0x07, 0x00, 0xC0, 0x07, 0x00, 0xF8, 0x01, 0x00, 0x7E, 0x00, 0x80, 0x1F, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char v + 0x12, 0x00, 0x01, 0x00, 0x80, 0x07, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xC0, 0x07, 0x00, 0xC0, 0x07, 0x00, 0xF0, 0x01, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xF0, 0x03, 0x00, 0xC0, 0x07, 0x00, 0xE0, 0x07, 0x00, 0xF8, 0x01, 0x00, 0x7E, 0x00, 0x80, 0x1F, 0x00, 0x80, 0x07, 0x00, // Code for char w + 0x0B, 0x00, 0x00, 0x00, 0x80, 0x03, 0x07, 0x80, 0x87, 0x07, 0x00, 0xCF, 0x03, 0x00, 0xFC, 0x01, 0x00, 0x78, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFE, 0x01, 0x00, 0xCF, 0x03, 0x80, 0x07, 0x07, 0x80, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char x + 0x0C, 0x00, 0x00, 0x00, 0x80, 0x03, 0xC0, 0x80, 0x1F, 0xE0, 0x00, 0x7E, 0xE0, 0x00, 0xF8, 0x79, 0x00, 0xE0, 0x3F, 0x00, 0xC0, 0x0F, 0x00, 0xF0, 0x03, 0x00, 0xFC, 0x00, 0x00, 0x3F, 0x00, 0x80, 0x0F, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char y + 0x0B, 0x00, 0x00, 0x00, 0x80, 0x01, 0x07, 0x80, 0x83, 0x07, 0x80, 0xC3, 0x07, 0x80, 0xE3, 0x07, 0x80, 0x7B, 0x07, 0x80, 0x3F, 0x07, 0x80, 0x1F, 0x07, 0x80, 0x0F, 0x07, 0x80, 0x07, 0x07, 0x80, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char z + 0x04, 0x00, 0x04, 0x00, 0xFE, 0xFF, 0x0F, 0xFF, 0xFF, 0x1F, 0xC7, 0x73, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char { + 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char | + 0x04, 0x00, 0x00, 0x00, 0xE7, 0xFB, 0x1C, 0xFF, 0xFF, 0x1F, 0x7C, 0xDF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char } + 0x0E, 0x00, 0x20, 0x00, 0x00, 0x38, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ~ + 0x06, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0xF8, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char  + }; + diff --git a/ili9341/fonts/FixedFont5x8.c b/ili9341/fonts/FixedFont5x8.c new file mode 100644 index 0000000..56170c0 --- /dev/null +++ b/ili9341/fonts/FixedFont5x8.c @@ -0,0 +1,100 @@ +// Generic 8 bit fixed width font +// 5 x 8 pixels +// Start at ASCII 32 + +0x05,0x00,0x00,0x00,0x00,0x00, // Code for char SPACE +0x05,0x00,0x00,0x5f,0x00,0x00, // Code for char ! +0x05,0x00,0x07,0x00,0x07,0x00, // Code for char " +0x05,0x14,0x7f,0x14,0x7f,0x14, // Code for char # +0x05,0x24,0x2a,0x7f,0x2a,0x12, // Code for char $ +0x05,0x23,0x13,0x08,0x64,0x62, // Code for char % +0x05,0x36,0x49,0x56,0x20,0x50, // Code for char & +0x05,0x00,0x08,0x07,0x03,0x00, // Code for char ' +0x05,0x00,0x1c,0x22,0x41,0x00, // Code for char ( +0x05,0x00,0x41,0x22,0x1c,0x00, // Code for char ) +0x05,0x2a,0x1c,0x7f,0x1c,0x2a, // Code for char * +0x05,0x08,0x08,0x3e,0x08,0x08, // Code for char + +0x05,0x00,0x80,0x70,0x30,0x00, // Code for char +0x05,0x08,0x08,0x08,0x08,0x08, // Code for char - +0x05,0x00,0x00,0x60,0x60,0x00, // Code for char . +0x05,0x20,0x10,0x08,0x04,0x02, // Code for char / +0x05,0x3e,0x51,0x49,0x45,0x3e, // Code for char 0 +0x05,0x00,0x42,0x7f,0x40,0x00, // Code for char 1 +0x05,0x72,0x49,0x49,0x49,0x46, // Code for char 2 +0x05,0x21,0x41,0x49,0x4d,0x33, // Code for char 3 +0x05,0x18,0x14,0x12,0x7f,0x10, // Code for char 4 +0x05,0x27,0x45,0x45,0x45,0x39, // Code for char 5 +0x05,0x3c,0x4a,0x49,0x49,0x31, // Code for char 6 +0x05,0x41,0x21,0x11,0x09,0x07, // Code for char 7 +0x05,0x36,0x49,0x49,0x49,0x36, // Code for char 8 +0x05,0x46,0x49,0x49,0x29,0x1e, // Code for char 9 +0x05,0x00,0x00,0x14,0x00,0x00, // Code for char : +0x05,0x00,0x40,0x34,0x00,0x00, // Code for char ; +0x05,0x00,0x08,0x14,0x22,0x41, // Code for char < +0x05,0x14,0x14,0x14,0x14,0x14, // Code for char = +0x05,0x00,0x41,0x22,0x14,0x08, // Code for char > +0x05,0x02,0x01,0x59,0x09,0x06, // Code for char ? +0x05,0x3e,0x41,0x5d,0x59,0x4e, // Code for char @ +0x05,0x7c,0x12,0x11,0x12,0x7c, // Code for char A +0x05,0x7f,0x49,0x49,0x49,0x36, // Code for char B +0x05,0x3e,0x41,0x41,0x41,0x22, // Code for char C +0x05,0x7f,0x41,0x41,0x41,0x3e, // Code for char D +0x05,0x7f,0x49,0x49,0x49,0x41, // Code for char E +0x05,0x7f,0x09,0x09,0x09,0x01, // Code for char F +0x05,0x3e,0x41,0x41,0x51,0x73, // Code for char G +0x05,0x7f,0x08,0x08,0x08,0x7f, // Code for char H +0x05,0x00,0x41,0x7f,0x41,0x00, // Code for char I +0x05,0x20,0x40,0x41,0x3f,0x01, // Code for char J +0x05,0x7f,0x08,0x14,0x22,0x41, // Code for char K +0x05,0x7f,0x40,0x40,0x40,0x40, // Code for char L +0x05,0x7f,0x02,0x1c,0x02,0x7f, // Code for char M +0x05,0x7f,0x04,0x08,0x10,0x7f, // Code for char N +0x05,0x3e,0x41,0x41,0x41,0x3e, // Code for char O +0x05,0x7f,0x09,0x09,0x09,0x06, // Code for char P +0x05,0x3e,0x41,0x51,0x21,0x5e, // Code for char Q +0x05,0x7f,0x09,0x19,0x29,0x46, // Code for char R +0x05,0x26,0x49,0x49,0x49,0x32, // Code for char S +0x05,0x03,0x01,0x7f,0x01,0x03, // Code for char T +0x05,0x3f,0x40,0x40,0x40,0x3f, // Code for char U +0x05,0x1f,0x20,0x40,0x20,0x1f, // Code for char V +0x05,0x3f,0x40,0x38,0x40,0x3f, // Code for char W +0x05,0x63,0x14,0x08,0x14,0x63, // Code for char X +0x05,0x03,0x04,0x78,0x04,0x03, // Code for char Y +0x05,0x61,0x59,0x49,0x4d,0x43, // Code for char Z +0x05,0x00,0x7f,0x41,0x41,0x41, // Code for char [ +0x05,0x02,0x04,0x08,0x10,0x20, // Code for char BackSlash +0x05,0x00,0x41,0x41,0x41,0x7f, // Code for char ] +0x05,0x04,0x02,0x01,0x02,0x04, // Code for char ^ +0x05,0x40,0x40,0x40,0x40,0x40, // Code for char _ +0x05,0x00,0x03,0x07,0x08,0x00, // Code for char ` +0x05,0x20,0x54,0x54,0x78,0x40, // Code for char a +0x05,0x7f,0x28,0x44,0x44,0x38, // Code for char b +0x05,0x38,0x44,0x44,0x44,0x28, // Code for char c +0x05,0x38,0x44,0x44,0x28,0x7f, // Code for char d +0x05,0x38,0x54,0x54,0x54,0x18, // Code for char e +0x05,0x00,0x08,0x7e,0x09,0x02, // Code for char f +0x05,0x18,0xa4,0xa4,0x9c,0x78, // Code for char g +0x05,0x7f,0x08,0x04,0x04,0x78, // Code for char h +0x05,0x00,0x44,0x7d,0x40,0x00, // Code for char i +0x05,0x20,0x40,0x40,0x3d,0x00, // Code for char j +0x05,0x7f,0x10,0x28,0x44,0x00, // Code for char k +0x05,0x00,0x41,0x7f,0x40,0x00, // Code for char l +0x05,0x7c,0x04,0x78,0x04,0x78, // Code for char m +0x05,0x7c,0x08,0x04,0x04,0x78, // Code for char n +0x05,0x38,0x44,0x44,0x44,0x38, // Code for char o +0x05,0xfc,0x18,0x24,0x24,0x18, // Code for char p +0x05,0x18,0x24,0x24,0x18,0xfc, // Code for char q +0x05,0x7c,0x08,0x04,0x04,0x08, // Code for char r +0x05,0x48,0x54,0x54,0x54,0x24, // Code for char s +0x05,0x04,0x04,0x3f,0x44,0x24, // Code for char t +0x05,0x3c,0x40,0x40,0x20,0x7c, // Code for char u +0x05,0x1c,0x20,0x40,0x20,0x1c, // Code for char v +0x05,0x3c,0x40,0x30,0x40,0x3c, // Code for char w +0x05,0x44,0x28,0x10,0x28,0x44, // Code for char x +0x05,0x4c,0x90,0x90,0x90,0x7c, // Code for char y +0x05,0x44,0x64,0x54,0x4c,0x44, // Code for char z +0x05,0x00,0x08,0x36,0x41,0x00, // Code for char { +0x05,0x00,0x00,0x77,0x00,0x00, // Code for char | +0x05,0x00,0x41,0x36,0x08,0x00, // Code for char } +0x05,0x02,0x01,0x02,0x04,0x02, // Code for char ~ +0x05,0x3c,0x26,0x23,0x26,0x3c, // Code for char DEL diff --git a/ili9341/fonts/IBMPlexMono12x24.c b/ili9341/fonts/IBMPlexMono12x24.c new file mode 100644 index 0000000..738fc5a --- /dev/null +++ b/ili9341/fonts/IBMPlexMono12x24.c @@ -0,0 +1,230 @@ + +//WARNING: This Font Require X-GLCD Lib. +// You can not use it with MikroE GLCD Lib. + +//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0 +//MikroElektronika 2011 +//http://www.mikroe.com + +//GLCD FontName : IBM_Plex_Mono12x24 +//GLCD FontSize : 12 x 24 + +const unsigned short IBM_Plex_Mono12x24[] = { + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7F, 0x0E, 0xC0, 0x1F, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char " + 0x0C, 0x00, 0x40, 0x00, 0x00, 0x48, 0x00, 0x00, 0x48, 0x0C, 0x00, 0xE8, 0x0F, 0x80, 0x7F, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x0F, 0x00, 0xF8, 0x07, 0xC0, 0x5F, 0x00, 0xC0, 0x48, 0x00, 0x00, 0x48, 0x00, 0x00, 0x08, 0x00, // Code for char # + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x80, 0x0F, 0x06, 0xC0, 0x18, 0x0C, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0xF0, 0xFF, 0x3F, 0x40, 0x30, 0x08, 0xC0, 0x20, 0x0C, 0x80, 0xE1, 0x07, 0x80, 0xC0, 0x03, 0x00, 0x00, 0x00, // Code for char $ + 0x0C, 0x00, 0x07, 0x08, 0x80, 0x0F, 0x0C, 0x40, 0x10, 0x07, 0x40, 0xD0, 0x01, 0x40, 0x50, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x28, 0x08, 0x00, 0x2E, 0x08, 0x80, 0x23, 0x08, 0xC0, 0xC0, 0x07, 0x40, 0x80, 0x03, // Code for char % + 0x0B, 0x00, 0x00, 0x01, 0x00, 0xC0, 0x07, 0x80, 0x6F, 0x0C, 0xC0, 0x1C, 0x08, 0x40, 0x30, 0x08, 0x40, 0x60, 0x08, 0x40, 0xC0, 0x04, 0xC0, 0x00, 0x03, 0x80, 0xE0, 0x07, 0x00, 0x60, 0x0C, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, // Code for char & + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0xFF, 0x0F, 0x80, 0x01, 0x18, 0x40, 0x00, 0x20, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ( + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0x40, 0x00, 0x20, 0x80, 0x01, 0x18, 0x00, 0xFF, 0x0F, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ) + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x04, 0x00, 0x20, 0x06, 0x00, 0xE0, 0x03, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x20, 0x06, 0x00, 0x30, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, // Code for char * + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0xFE, 0x03, 0x00, 0xFE, 0x03, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, // Code for char + + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char , + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char - + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char . + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x01, 0x00, 0x78, 0x00, 0x00, 0x0F, 0x00, 0xC0, 0x01, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char / + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFF, 0x03, 0x80, 0x00, 0x04, 0x40, 0x00, 0x08, 0x40, 0x30, 0x08, 0x40, 0x30, 0x08, 0x40, 0x00, 0x08, 0x80, 0x00, 0x04, 0x00, 0xFF, 0x03, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, // Code for char 0 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x03, 0x08, 0x80, 0x01, 0x08, 0xC0, 0x00, 0x08, 0x40, 0x00, 0x08, 0xC0, 0xFF, 0x0F, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char 1 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x80, 0x01, 0x0E, 0xC0, 0x00, 0x0E, 0x40, 0x00, 0x0B, 0x40, 0x80, 0x09, 0x40, 0xC0, 0x08, 0xC0, 0x60, 0x08, 0x80, 0x3F, 0x08, 0x00, 0x0F, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char 2 + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x80, 0x01, 0x04, 0xC0, 0x00, 0x0C, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0xC0, 0x28, 0x0C, 0x80, 0x6F, 0x06, 0x00, 0xC7, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 3 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x60, 0x01, 0x00, 0x38, 0x01, 0x00, 0x0C, 0x01, 0x00, 0x07, 0x01, 0xC0, 0x01, 0x01, 0x40, 0x00, 0x01, 0xC0, 0xFF, 0x0F, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // Code for char 4 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xC0, 0x3F, 0x06, 0xC0, 0x2F, 0x0C, 0x40, 0x20, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x30, 0x04, 0x40, 0xE0, 0x07, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, // Code for char 5 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0xFC, 0x07, 0x00, 0x2E, 0x04, 0x80, 0x23, 0x08, 0x80, 0x11, 0x08, 0xC0, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x30, 0x04, 0x00, 0xE0, 0x07, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, // Code for char 6 + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0x40, 0x00, 0x08, 0x40, 0x00, 0x0C, 0x40, 0x80, 0x07, 0x40, 0xE0, 0x01, 0x40, 0x7C, 0x00, 0x40, 0x0F, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 7 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x80, 0xEF, 0x07, 0xC0, 0x28, 0x0C, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0xC0, 0x28, 0x0C, 0x80, 0xEF, 0x07, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, // Code for char 8 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x80, 0x1F, 0x00, 0x80, 0x30, 0x08, 0x40, 0x20, 0x08, 0x40, 0x20, 0x0C, 0x40, 0x20, 0x06, 0x40, 0x20, 0x07, 0x80, 0xD0, 0x01, 0x80, 0xFF, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, // Code for char 9 + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char : + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x0E, 0x7E, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ; + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x98, 0x01, 0x00, 0x98, 0x01, 0x00, 0x0C, 0x03, 0x00, 0x04, 0x02, 0x00, 0x06, 0x06, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char < + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x88, 0x00, 0x00, 0x88, 0x00, 0x00, 0x88, 0x00, 0x00, 0x88, 0x00, 0x00, 0x88, 0x00, 0x00, 0x88, 0x00, 0x00, 0x88, 0x00, 0x00, 0x88, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, // Code for char = + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x06, 0x06, 0x00, 0x04, 0x02, 0x00, 0x0C, 0x03, 0x00, 0x98, 0x01, 0x00, 0x98, 0x01, 0x00, 0xF0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char > + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x40, 0x00, 0x0E, 0x40, 0x70, 0x0E, 0x40, 0x10, 0x0E, 0x40, 0x18, 0x00, 0x80, 0x0F, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ? + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0xFF, 0x0F, 0x80, 0x00, 0x18, 0x40, 0xF0, 0x30, 0x40, 0xF8, 0x23, 0x40, 0x04, 0x22, 0x40, 0x04, 0x22, 0x80, 0x08, 0x22, 0x80, 0xFF, 0x03, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, // Code for char @ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0xC0, 0x07, 0x00, 0xF8, 0x00, 0x80, 0x9F, 0x00, 0xC0, 0x81, 0x00, 0xC0, 0x81, 0x00, 0x80, 0x9F, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, // Code for char A + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0xC0, 0x28, 0x0C, 0x80, 0xEF, 0x07, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, // Code for char B + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0xFF, 0x03, 0x80, 0x01, 0x06, 0xC0, 0x00, 0x0C, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0xC0, 0x00, 0x0C, 0x80, 0x01, 0x06, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, // Code for char C + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x80, 0x01, 0x06, 0x00, 0xFF, 0x03, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, // Code for char D + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char E + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x40, 0x10, 0x00, 0x40, 0x10, 0x00, 0x40, 0x10, 0x00, 0x40, 0x10, 0x00, 0x40, 0x10, 0x00, 0x40, 0x10, 0x00, 0x40, 0x10, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F + 0x0A, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFF, 0x07, 0x80, 0x01, 0x06, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x20, 0x08, 0x40, 0x20, 0x08, 0xC0, 0x20, 0x06, 0x80, 0xE1, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char G + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0xC0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char H + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x06, 0x40, 0x00, 0x0C, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x0C, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char J + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x00, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00, 0x18, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xE7, 0x01, 0x80, 0x83, 0x03, 0xC0, 0x00, 0x0E, 0x40, 0x00, 0x0C, 0x00, 0x00, 0x08, // Code for char K + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char L + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0xC0, 0x03, 0x00, 0x00, 0x0E, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x78, 0x00, 0x00, 0x0E, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0x00, 0x00, 0x00, // Code for char M + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0xC0, 0x01, 0x00, 0x80, 0x07, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x0E, 0xC0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char N + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFF, 0x03, 0x80, 0x01, 0x06, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x80, 0x01, 0x06, 0x00, 0xFF, 0x03, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, // Code for char O + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x40, 0xE0, 0x0F, 0x40, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0x20, 0x00, 0xC0, 0x30, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, // Code for char P + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFF, 0x07, 0x80, 0x01, 0x06, 0x40, 0x00, 0x08, 0x40, 0x00, 0x38, 0x40, 0x00, 0x78, 0x40, 0x00, 0x48, 0x80, 0x01, 0x46, 0x00, 0xFF, 0x47, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, // Code for char Q + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x40, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0x60, 0x00, 0x40, 0xE0, 0x01, 0xC0, 0x30, 0x07, 0x80, 0x1F, 0x0E, 0x00, 0x0F, 0x08, 0x00, 0x00, 0x00, // Code for char R + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x80, 0x0F, 0x06, 0xC0, 0x18, 0x0C, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x20, 0x08, 0xC0, 0x20, 0x0C, 0x80, 0xE1, 0x07, 0x80, 0xC0, 0x03, 0x00, 0x00, 0x00, // Code for char S + 0x0C, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, // Code for char T + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x0E, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char U + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0xE0, 0x07, 0x00, 0x7C, 0x00, 0xC0, 0x0F, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char V + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0x00, 0x0E, 0x00, 0xE0, 0x07, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0x0E, 0x00, 0xF8, 0x0F, 0xC0, 0xFF, 0x00, 0x00, 0x00, 0x00, // Code for char W + 0x0C, 0x00, 0x00, 0x00, 0x40, 0x00, 0x0C, 0xC0, 0x01, 0x0E, 0x80, 0x83, 0x03, 0x00, 0xCE, 0x01, 0x00, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0xCE, 0x00, 0x00, 0x87, 0x03, 0xC0, 0x01, 0x0E, 0x40, 0x00, 0x0C, 0x00, 0x00, 0x08, // Code for char X + 0x0C, 0x40, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0x1C, 0x00, 0x00, 0x0F, 0x00, 0x80, 0x03, 0x00, 0xC0, 0x00, 0x00, 0x40, 0x00, 0x00, // Code for char Y + 0x0B, 0x00, 0x00, 0x00, 0x40, 0x00, 0x0C, 0x40, 0x00, 0x0E, 0x40, 0x80, 0x0B, 0x40, 0xC0, 0x08, 0x40, 0x70, 0x08, 0x40, 0x18, 0x08, 0x40, 0x0E, 0x08, 0x40, 0x03, 0x08, 0xC0, 0x01, 0x08, 0x40, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char Z + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x7F, 0xE0, 0xFF, 0x7F, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x38, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0xE0, 0xFF, 0x7F, 0xE0, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ] + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0E, 0x00, 0x80, 0x03, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x38, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, // Code for char ^ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // Code for char _ + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ` + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x98, 0x07, 0x00, 0xCC, 0x0C, 0x00, 0x44, 0x08, 0x00, 0x44, 0x08, 0x00, 0x44, 0x08, 0x00, 0x4C, 0x04, 0x00, 0xF8, 0x07, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char a + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0x08, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x0C, 0x0C, 0x00, 0xF8, 0x07, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, // Code for char b + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x18, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x1C, 0x0C, 0x00, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char c + 0x0A, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0xF8, 0x07, 0x00, 0x0C, 0x0C, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x08, 0x08, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char d + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x48, 0x04, 0x00, 0x44, 0x08, 0x00, 0x44, 0x08, 0x00, 0x44, 0x08, 0x00, 0x44, 0x08, 0x00, 0x48, 0x0C, 0x00, 0x78, 0x06, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, // Code for char e + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0xC0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x20, 0x04, 0x08, 0x20, 0x04, 0x08, 0x20, 0x04, 0x08, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, // Code for char f + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x70, 0x76, 0x00, 0xF8, 0x8E, 0x00, 0x04, 0x89, 0x00, 0x04, 0x89, 0x00, 0x04, 0x89, 0x00, 0x04, 0x89, 0x00, 0xFE, 0x88, 0x00, 0x72, 0xD8, 0x00, 0x02, 0x70, 0x00, 0x00, 0x00, // Code for char g + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0x08, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char h + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0xC0, 0x04, 0x08, 0xC0, 0xFC, 0x0F, 0xC0, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char i + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0x00, 0x04, 0x80, 0x00, 0x04, 0x80, 0x00, 0x04, 0x80, 0x00, 0x04, 0x80, 0xC0, 0xFC, 0xFF, 0xC0, 0xFC, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0xC0, 0x00, 0x00, 0x60, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x98, 0x01, 0x00, 0x0C, 0x07, 0x00, 0x04, 0x0E, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, // Code for char k + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x08, 0x20, 0x00, 0x08, 0x20, 0x00, 0x08, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char l + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, // Code for char m + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0x08, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char n + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0xF8, 0x07, 0x00, 0x08, 0x04, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x08, 0x04, 0x00, 0xF8, 0x07, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, // Code for char o + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x00, 0xFC, 0xFF, 0x00, 0x08, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x0C, 0x0C, 0x00, 0xF8, 0x07, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, // Code for char p + 0x0A, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0xF8, 0x07, 0x00, 0x0C, 0x0C, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x08, 0x08, 0x00, 0xFC, 0xFF, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char q + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0xFC, 0x0F, 0x00, 0x18, 0x08, 0x00, 0x08, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, // Code for char r + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x38, 0x06, 0x00, 0x7C, 0x0C, 0x00, 0x44, 0x08, 0x00, 0x44, 0x08, 0x00, 0xC4, 0x08, 0x00, 0x84, 0x08, 0x00, 0x8C, 0x0C, 0x00, 0x88, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char s + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x0F, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, // Code for char t + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0xFC, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char u + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x80, 0x07, 0x00, 0xF0, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, // Code for char v + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0C, 0x00, 0xE0, 0x07, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x0C, 0x00, 0xC0, 0x0F, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, // Code for char w + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x00, 0x0C, 0x0C, 0x00, 0x1C, 0x06, 0x00, 0x30, 0x03, 0x00, 0xE0, 0x01, 0x00, 0xE0, 0x01, 0x00, 0x30, 0x03, 0x00, 0x1C, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, // Code for char x + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x80, 0x00, 0xF0, 0x80, 0x00, 0xC0, 0xC3, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0x03, 0x00, 0xF0, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, // Code for char y + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0C, 0x00, 0x04, 0x0E, 0x00, 0x04, 0x0B, 0x00, 0xC4, 0x09, 0x00, 0x64, 0x08, 0x00, 0x34, 0x08, 0x00, 0x1C, 0x08, 0x00, 0x0C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char z + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0xE0, 0x23, 0x7E, 0x20, 0xDE, 0x47, 0x20, 0x9C, 0x41, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char { + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x7F, 0xE0, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char | + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0x20, 0x9C, 0x41, 0x20, 0xDE, 0x47, 0xE0, 0x23, 0x7E, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char } + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, // Code for char ~ + 0x05, 0xF0, 0xFF, 0x07, 0xF0, 0xFF, 0x07, 0x10, 0x00, 0x04, 0x10, 0x00, 0x04, 0xF0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char € + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‚ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ƒ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char „ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char … + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char † + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‡ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ˆ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‰ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Š + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‹ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Œ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ž + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‘ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ’ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char “ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ” + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char • + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char – + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char — + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ˜ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ™ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char š + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char › + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char œ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ž + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ÿ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char   + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C, 0xFF, 0x00, 0x1C, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¡ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x18, 0x06, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0xFF, 0x3F, 0x00, 0x04, 0x08, 0x00, 0x1C, 0x0C, 0x00, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¢ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0C, 0x00, 0x7F, 0x0C, 0x80, 0xFF, 0x0F, 0xC0, 0xC0, 0x09, 0x40, 0x40, 0x08, 0x40, 0x40, 0x08, 0x40, 0x40, 0x08, 0x40, 0x00, 0x08, 0x80, 0x01, 0x08, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char £ + 0x0B, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x0F, 0x10, 0x00, 0x08, 0x10, 0x00, 0x08, 0x10, 0x00, 0x08, 0x10, 0x00, 0x08, 0x10, 0x00, 0x08, 0x10, 0x00, 0x08, 0x10, 0x00, 0x08, 0x10, 0x00, 0x08, 0xF0, 0xFF, 0x0F, 0x00, 0x00, 0x00, // Code for char ¤ + 0x0C, 0x40, 0x00, 0x00, 0xC0, 0x40, 0x08, 0xC0, 0x43, 0x08, 0x00, 0x4E, 0x08, 0x00, 0x78, 0x08, 0x00, 0xE0, 0x0F, 0x00, 0xE0, 0x0F, 0x00, 0x78, 0x08, 0x00, 0x4E, 0x08, 0x80, 0x43, 0x08, 0xC0, 0x40, 0x08, 0x40, 0x00, 0x00, // Code for char ¥ + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x0F, 0x7F, 0xE0, 0x0F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¦ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x40, 0x80, 0x97, 0x61, 0xC0, 0x0C, 0x41, 0x40, 0x08, 0x42, 0x40, 0x08, 0x42, 0x40, 0x10, 0x66, 0xC0, 0x30, 0x3D, 0x80, 0xE0, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char § + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¨ + 0x0C, 0x00, 0xFC, 0x00, 0x00, 0x87, 0x03, 0x80, 0x01, 0x06, 0x80, 0x78, 0x04, 0x40, 0xCE, 0x09, 0x40, 0x02, 0x09, 0x40, 0x02, 0x09, 0x40, 0x86, 0x09, 0x80, 0x84, 0x04, 0x80, 0x01, 0x06, 0x00, 0x87, 0x03, 0x00, 0xFC, 0x00, // Code for char © + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1C, 0x00, 0x40, 0x12, 0x00, 0x40, 0x12, 0x00, 0x40, 0x12, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ª + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xB0, 0x01, 0x00, 0x18, 0x03, 0x00, 0x0C, 0x06, 0x00, 0x40, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xB0, 0x01, 0x00, 0x18, 0x03, 0x00, 0x0C, 0x06, 0x00, 0x00, 0x00, // Code for char « + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¬ + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ­ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x80, 0x19, 0x00, 0x40, 0x2A, 0x00, 0x40, 0x25, 0x00, 0x40, 0x2F, 0x00, 0x40, 0x30, 0x00, 0x80, 0x19, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ® + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¯ + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x00, 0xC0, 0x18, 0x00, 0x40, 0x10, 0x00, 0x40, 0x10, 0x00, 0xC0, 0x18, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ° + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x10, 0x08, 0x00, 0x10, 0x08, 0x00, 0x10, 0x08, 0x00, 0xFF, 0x09, 0x00, 0xFF, 0x09, 0x00, 0x10, 0x08, 0x00, 0x10, 0x08, 0x00, 0x10, 0x08, 0x00, 0x10, 0x08, 0x00, 0x00, 0x00, // Code for char ± + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x00, 0xC0, 0x18, 0x00, 0x40, 0x14, 0x00, 0x40, 0x16, 0x00, 0xC0, 0x13, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ² + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0xC0, 0x10, 0x00, 0x40, 0x12, 0x00, 0x40, 0x12, 0x00, 0xC0, 0x1D, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ³ + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ´ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x00, 0xFC, 0xF7, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0xFC, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char µ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x3F, 0x00, 0xC0, 0x7F, 0x00, 0xC0, 0x7F, 0x00, 0xC0, 0xFF, 0x7F, 0xC0, 0xFF, 0x7F, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0xC0, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¶ + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char · + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xB0, 0x00, 0x00, 0xD0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¸ + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xC0, 0x10, 0x00, 0x40, 0x10, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¹ + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x00, 0xC0, 0x18, 0x00, 0x40, 0x10, 0x00, 0x40, 0x10, 0x00, 0xC0, 0x18, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char º + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x06, 0x00, 0x18, 0x03, 0x00, 0xB0, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x40, 0x00, 0x00, 0x0C, 0x06, 0x00, 0x18, 0x03, 0x00, 0xB0, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, // Code for char » + 0x0C, 0x80, 0x00, 0x08, 0xC0, 0x10, 0x0C, 0x40, 0x10, 0x07, 0xC0, 0xDF, 0x01, 0x00, 0x50, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x08, 0x05, 0x00, 0xCE, 0x04, 0x80, 0x23, 0x04, 0xC0, 0xE0, 0x0F, 0x40, 0x00, 0x04, // Code for char ¼ + 0x0C, 0x80, 0x00, 0x08, 0xC0, 0x10, 0x0C, 0x40, 0x10, 0x07, 0xC0, 0xDF, 0x01, 0x00, 0x50, 0x00, 0x00, 0x10, 0x00, 0x00, 0x80, 0x00, 0x00, 0x68, 0x0C, 0x00, 0x2E, 0x0E, 0x80, 0x23, 0x0B, 0xC0, 0xE0, 0x09, 0x40, 0x00, 0x08, // Code for char ½ + 0x0C, 0x00, 0x08, 0x08, 0xC0, 0x18, 0x0C, 0x40, 0x12, 0x07, 0x40, 0xD2, 0x01, 0xC0, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x08, 0x05, 0x00, 0xCE, 0x04, 0x80, 0x23, 0x04, 0xC0, 0xE0, 0x0F, 0x40, 0x00, 0x04, // Code for char ¾ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x86, 0x00, 0x1C, 0x82, 0x00, 0x9C, 0x83, 0x00, 0x1C, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¿ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0xC0, 0x07, 0x00, 0xF8, 0x00, 0x86, 0x9F, 0x00, 0xCC, 0x81, 0x00, 0xD0, 0x81, 0x00, 0x80, 0x9F, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, // Code for char À + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0xC0, 0x07, 0x00, 0xF8, 0x00, 0x80, 0x9F, 0x00, 0xD0, 0x81, 0x00, 0xCC, 0x81, 0x00, 0x86, 0x9F, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, // Code for char Á + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0xC0, 0x07, 0x10, 0xF8, 0x00, 0x88, 0x9F, 0x00, 0xC4, 0x81, 0x00, 0xC4, 0x81, 0x00, 0x88, 0x9F, 0x00, 0x10, 0xF8, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, // Code for char  + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0xC0, 0x07, 0x0C, 0xF8, 0x00, 0x84, 0x9F, 0x00, 0xC4, 0x81, 0x00, 0xC8, 0x81, 0x00, 0x88, 0x9F, 0x00, 0x0C, 0xF8, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, // Code for char à + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0xC0, 0x07, 0x0C, 0xF8, 0x00, 0x8C, 0x9F, 0x00, 0xC0, 0x81, 0x00, 0xC0, 0x81, 0x00, 0x8C, 0x9F, 0x00, 0x0C, 0xF8, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, // Code for char Ä + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0xC0, 0x07, 0x00, 0xF8, 0x00, 0x8E, 0x9F, 0x00, 0xD1, 0x81, 0x00, 0xD1, 0x81, 0x00, 0x8E, 0x9F, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, // Code for char Å + 0x0B, 0x00, 0x00, 0x08, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x07, 0x00, 0xFE, 0x00, 0xC0, 0x87, 0x00, 0x40, 0x80, 0x00, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x00, 0x00, 0x00, // Code for char Æ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0xFF, 0x03, 0x80, 0x01, 0x06, 0xC0, 0x00, 0x4C, 0x40, 0x00, 0xA8, 0x40, 0x00, 0xB8, 0x40, 0x00, 0xE8, 0xC0, 0x00, 0x4C, 0x80, 0x01, 0x06, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, // Code for char Ç + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x40, 0x10, 0x08, 0x46, 0x10, 0x08, 0x4C, 0x10, 0x08, 0x50, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char È + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x50, 0x10, 0x08, 0x4C, 0x10, 0x08, 0x46, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char É + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x50, 0x10, 0x08, 0x48, 0x10, 0x08, 0x44, 0x10, 0x08, 0x44, 0x10, 0x08, 0x48, 0x10, 0x08, 0x50, 0x10, 0x08, 0x40, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ê + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x4C, 0x10, 0x08, 0x4C, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x4C, 0x10, 0x08, 0x4C, 0x10, 0x08, 0x40, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ë + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x46, 0x00, 0x08, 0xCC, 0xFF, 0x0F, 0xD0, 0xFF, 0x0F, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ì + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0xD0, 0xFF, 0x0F, 0xCC, 0xFF, 0x0F, 0x46, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Í + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0x50, 0x00, 0x08, 0x48, 0x00, 0x08, 0xC4, 0xFF, 0x0F, 0xC4, 0xFF, 0x0F, 0x48, 0x00, 0x08, 0x50, 0x00, 0x08, 0x40, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Î + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0x4C, 0x00, 0x08, 0x4C, 0x00, 0x08, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0x4C, 0x00, 0x08, 0x4C, 0x00, 0x08, 0x40, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ï + 0x0B, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x10, 0x08, 0x40, 0x00, 0x08, 0x80, 0x01, 0x06, 0x00, 0xFF, 0x03, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, // Code for char Ð + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0xCC, 0x01, 0x00, 0x84, 0x07, 0x00, 0x04, 0x3C, 0x00, 0x08, 0xF0, 0x00, 0x08, 0x80, 0x07, 0x0C, 0x00, 0x0E, 0xC0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ñ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFF, 0x03, 0x80, 0x01, 0x06, 0x46, 0x00, 0x08, 0x4C, 0x00, 0x08, 0x50, 0x00, 0x08, 0x40, 0x00, 0x08, 0x80, 0x01, 0x06, 0x00, 0xFF, 0x03, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, // Code for char Ò + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFF, 0x03, 0x80, 0x01, 0x06, 0x40, 0x00, 0x08, 0x50, 0x00, 0x08, 0x4C, 0x00, 0x08, 0x46, 0x00, 0x08, 0x80, 0x01, 0x06, 0x00, 0xFF, 0x03, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, // Code for char Ó + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFF, 0x03, 0x90, 0x01, 0x06, 0x48, 0x00, 0x08, 0x44, 0x00, 0x08, 0x44, 0x00, 0x08, 0x48, 0x00, 0x08, 0x90, 0x01, 0x06, 0x00, 0xFF, 0x03, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, // Code for char Ô + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFF, 0x03, 0x8C, 0x01, 0x06, 0x44, 0x00, 0x08, 0x44, 0x00, 0x08, 0x48, 0x00, 0x08, 0x48, 0x00, 0x08, 0x8C, 0x01, 0x06, 0x00, 0xFF, 0x03, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, // Code for char Õ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFF, 0x03, 0x8C, 0x01, 0x06, 0x4C, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x4C, 0x00, 0x08, 0x8C, 0x01, 0x06, 0x00, 0xFF, 0x03, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, // Code for char Ö + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x02, 0x00, 0x18, 0x03, 0x00, 0xB0, 0x01, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xB0, 0x01, 0x00, 0x18, 0x03, 0x00, 0x0C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char × + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x18, 0x00, 0xFF, 0x0F, 0x80, 0x01, 0x07, 0x40, 0xC0, 0x09, 0x40, 0x60, 0x08, 0x40, 0x18, 0x08, 0x40, 0x0E, 0x08, 0x80, 0x03, 0x06, 0xE0, 0xFF, 0x03, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, // Code for char Ø + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x0E, 0x06, 0x00, 0x08, 0x0C, 0x00, 0x08, 0x10, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x0E, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ù + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x08, 0x10, 0x00, 0x08, 0x0C, 0x00, 0x08, 0x06, 0x00, 0x08, 0x00, 0x00, 0x0E, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ú + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0x10, 0x00, 0x0E, 0x08, 0x00, 0x08, 0x04, 0x00, 0x08, 0x04, 0x00, 0x08, 0x08, 0x00, 0x08, 0x10, 0x00, 0x0E, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Û + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0x0C, 0x00, 0x0E, 0x0C, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x0C, 0x00, 0x08, 0x0C, 0x00, 0x0E, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ü + 0x0C, 0x40, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x1C, 0x00, 0x10, 0xF0, 0x0F, 0x0C, 0xF0, 0x0F, 0x06, 0x1C, 0x00, 0x00, 0x0F, 0x00, 0x80, 0x03, 0x00, 0xC0, 0x00, 0x00, 0x40, 0x00, 0x00, // Code for char Ý + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x00, 0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x86, 0x01, 0x00, 0xFC, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, // Code for char Þ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x20, 0x04, 0x00, 0x20, 0x04, 0x80, 0x20, 0x84, 0x81, 0x00, 0xE4, 0x81, 0x00, 0x34, 0x81, 0x00, 0x1C, 0x62, 0x00, 0x0C, 0x7E, 0x00, 0x00, 0x00, // Code for char ß + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x98, 0x07, 0x00, 0xCC, 0x0C, 0x30, 0x44, 0x08, 0x60, 0x44, 0x08, 0x80, 0x44, 0x08, 0x00, 0x4C, 0x04, 0x00, 0xF8, 0x07, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char à + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x98, 0x07, 0x00, 0xCC, 0x0C, 0x00, 0x44, 0x08, 0x80, 0x44, 0x08, 0x60, 0x44, 0x08, 0x30, 0x4C, 0x04, 0x00, 0xF8, 0x07, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char á + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x98, 0x07, 0x80, 0xCC, 0x0C, 0x40, 0x44, 0x08, 0x20, 0x44, 0x08, 0x20, 0x44, 0x08, 0x40, 0x4C, 0x04, 0x80, 0xF8, 0x07, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char â + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x98, 0x07, 0xC0, 0xCC, 0x0C, 0x40, 0x44, 0x08, 0x40, 0x44, 0x08, 0x80, 0x44, 0x08, 0x80, 0x4C, 0x04, 0xC0, 0xF8, 0x07, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char ã + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x98, 0x07, 0xC0, 0xCC, 0x0C, 0xC0, 0x44, 0x08, 0x00, 0x44, 0x08, 0x00, 0x44, 0x08, 0xC0, 0x4C, 0x04, 0xC0, 0xF8, 0x07, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char ä + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x98, 0x07, 0x00, 0xCC, 0x0C, 0x70, 0x44, 0x08, 0x88, 0x44, 0x08, 0x88, 0x44, 0x08, 0x70, 0x4C, 0x04, 0x00, 0xF8, 0x07, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char å + 0x0C, 0x00, 0x10, 0x07, 0x00, 0xD8, 0x0F, 0x00, 0x44, 0x08, 0x00, 0x44, 0x08, 0x00, 0x44, 0x04, 0x00, 0xF8, 0x03, 0x00, 0x58, 0x07, 0x00, 0x44, 0x08, 0x00, 0x44, 0x08, 0x00, 0x44, 0x08, 0x00, 0x78, 0x06, 0x00, 0x60, 0x00, // Code for char æ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x18, 0x06, 0x00, 0x0C, 0x4C, 0x00, 0x04, 0xB8, 0x00, 0x04, 0xA8, 0x00, 0x04, 0xE8, 0x00, 0x1C, 0x4C, 0x00, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ç + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x48, 0x04, 0x30, 0x44, 0x08, 0x60, 0x44, 0x08, 0x80, 0x44, 0x08, 0x00, 0x44, 0x08, 0x00, 0x48, 0x0C, 0x00, 0x78, 0x06, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, // Code for char è + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x48, 0x04, 0x00, 0x44, 0x08, 0x80, 0x44, 0x08, 0x60, 0x44, 0x08, 0x30, 0x44, 0x08, 0x00, 0x48, 0x0C, 0x00, 0x78, 0x06, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, // Code for char é + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF0, 0x03, 0x80, 0x48, 0x04, 0x40, 0x44, 0x08, 0x20, 0x44, 0x08, 0x20, 0x44, 0x08, 0x40, 0x44, 0x08, 0x80, 0x48, 0x0C, 0x00, 0x78, 0x06, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, // Code for char ê + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF0, 0x03, 0xC0, 0x48, 0x04, 0xC0, 0x44, 0x08, 0x00, 0x44, 0x08, 0x00, 0x44, 0x08, 0xC0, 0x44, 0x08, 0xC0, 0x48, 0x0C, 0x00, 0x78, 0x06, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, // Code for char ë + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x30, 0x04, 0x08, 0x60, 0xFC, 0x0F, 0x80, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char ì + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x80, 0xFC, 0x0F, 0x60, 0x00, 0x08, 0x30, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char í + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0x80, 0x04, 0x08, 0x40, 0x04, 0x08, 0x20, 0xFC, 0x0F, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x80, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char î + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0xC0, 0x04, 0x08, 0xC0, 0x04, 0x08, 0x00, 0xFC, 0x0F, 0x00, 0x00, 0x08, 0xC0, 0x00, 0x08, 0xC0, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // Code for char ï + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0xF8, 0x07, 0x20, 0x08, 0x04, 0xA0, 0x05, 0x08, 0xE0, 0x04, 0x08, 0xC0, 0x04, 0x08, 0xE0, 0x05, 0x08, 0x20, 0x0B, 0x04, 0x00, 0xFC, 0x07, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, // Code for char ð + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0x40, 0x08, 0x00, 0x40, 0x04, 0x00, 0x80, 0x04, 0x00, 0x80, 0x04, 0x00, 0xC0, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ñ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0xF8, 0x07, 0x00, 0x08, 0x04, 0x30, 0x04, 0x08, 0x60, 0x04, 0x08, 0x80, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x08, 0x04, 0x00, 0xF8, 0x07, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, // Code for char ò + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0xF8, 0x07, 0x00, 0x08, 0x04, 0x00, 0x04, 0x08, 0x80, 0x04, 0x08, 0x60, 0x04, 0x08, 0x30, 0x04, 0x08, 0x00, 0x08, 0x04, 0x00, 0xF8, 0x07, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, // Code for char ó + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0xF8, 0x07, 0x80, 0x08, 0x04, 0x40, 0x04, 0x08, 0x20, 0x04, 0x08, 0x20, 0x04, 0x08, 0x40, 0x04, 0x08, 0x80, 0x08, 0x04, 0x00, 0xF8, 0x07, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, // Code for char ô + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0xF8, 0x07, 0xC0, 0x08, 0x04, 0x40, 0x04, 0x08, 0x40, 0x04, 0x08, 0x80, 0x04, 0x08, 0x80, 0x04, 0x08, 0xC0, 0x08, 0x04, 0x00, 0xF8, 0x07, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, // Code for char õ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0xF8, 0x07, 0xC0, 0x08, 0x04, 0xC0, 0x04, 0x08, 0x00, 0x04, 0x08, 0x00, 0x04, 0x08, 0xC0, 0x04, 0x08, 0xC0, 0x08, 0x04, 0x00, 0xF8, 0x07, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, // Code for char ö + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x26, 0x03, 0x00, 0x26, 0x03, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00 // Code for char ÷ + }; + diff --git a/ili9341/fonts/Neato5x7.c b/ili9341/fonts/Neato5x7.c new file mode 100644 index 0000000..e6aac5d --- /dev/null +++ b/ili9341/fonts/Neato5x7.c @@ -0,0 +1,228 @@ +// Modified version of Standard ASCII 5x7 font +// NEATO ASCII 5x7 font (223 characters) +// BY: IxD SMART Design, ported by: aisencc +static const unsigned char font[] PROGMEM = { +0x05,0x00,0x00,0x00,0x00,0x00, //32 (space) +0x05,0x00,0x00,0x17,0x00,0x00, //33 ! +0x05,0x00,0x07,0x00,0x07,0x00, //34 +0x05,0x14,0x7F,0x14,0x7F,0x14, //35 # +0x05,0x24,0x2A,0x7F,0x2A,0x12, //36 $ +0x05,0x23,0x13,0x08,0x64,0x62, //37 % +0x05,0x36,0x49,0x56,0x20,0x50, //38 & +0x05,0x00,0x08,0x07,0x03,0x00, //39 ' +0x05,0x00,0x1C,0x22,0x41,0x00, //40 ( +0x05,0x00,0x41,0x22,0x1C,0x00, //41 ) +0x05,0x2A,0x1C,0x7F,0x1C,0x2A, //42 * +0x05,0x08,0x08,0x3E,0x08,0x08, //43 + +0x05,0x00,0x80,0x70,0x30,0x00, //44 , +0x05,0x08,0x08,0x08,0x08,0x08, //45 - +0x05,0x00,0x00,0x60,0x60,0x00, //46 . +0x05,0x20,0x10,0x08,0x04,0x02, //47 / +0x05,0x3E,0x51,0x49,0x45,0x3E, //48 0 +0x05,0x00,0x42,0x7F,0x40,0x00, //49 1 +0x05,0x72,0x49,0x49,0x49,0x46, //50 2 +0x05,0x21,0x41,0x49,0x4D,0x33, //51 3 +0x05,0x18,0x14,0x12,0x7F,0x10, //52 4 +0x05,0x27,0x45,0x45,0x45,0x39, //53 5 +0x05,0x3C,0x4A,0x49,0x49,0x31, //54 6 +0x05,0x41,0x21,0x11,0x09,0x07, //55 7 +0x05,0x36,0x49,0x49,0x49,0x36, //56 8 +0x05,0x46,0x49,0x49,0x29,0x1E, //57 9 +0x05,0x00,0x00,0x14,0x00,0x00, //58 : +0x05,0x00,0x40,0x34,0x00,0x00, //59 ; +0x05,0x00,0x08,0x14,0x22,0x41, //60 < +0x05,0x14,0x14,0x14,0x14,0x14, //61 = +0x05,0x00,0x41,0x22,0x14,0x08, //62 > +0x05,0x02,0x01,0x59,0x09,0x06, //63 ? +0x05,0x3E,0x41,0x5D,0x59,0x4E, //64 @ +0x05,0x1F,0x05,0x05,0x05,0x1F, //65 A +0x05,0x1F,0x15,0x15,0x15,0x0E, //66 B +0x05,0x1F,0x11,0x11,0x11,0x11, //67 C +0x05,0x1F,0x11,0x11,0x11,0x0E, //68 D +0x05,0x1F,0x15,0x15,0x15,0x11, //69 E +0x05,0x1F,0x05,0x05,0x05,0x01, //70 F +0x05,0x1F,0x11,0x15,0x15,0x1D, //71 G +0x05,0x1F,0x04,0x04,0x04,0x1F, //72 H +0x05,0x11,0x11,0x1F,0x11,0x11, //73 I +0x05,0x11,0x11,0x1F,0x01,0x01, //74 J +0x05,0x1F,0x04,0x0A,0x11,0x00, //75 K +0x05,0x1F,0x10,0x10,0x10,0x00, //76 L +0x05,0x1F,0x02,0x04,0x02,0x1F, //77 M +0x05,0x1F,0x02,0x04,0x08,0x1F, //78 N +0x05,0x1F,0x11,0x11,0x11,0x1F, //79 O +0x05,0x1F,0x05,0x05,0x05,0x07, //80 P +0x05,0x1F,0x11,0x11,0x19,0x1F, //81 Q +0x05,0x1F,0x05,0x05,0x0D,0x17, //82 R +0x05,0x17,0x15,0x15,0x15,0x1D, //83 S +0x05,0x01,0x01,0x1F,0x01,0x01, //84 T +0x05,0x1F,0x10,0x10,0x10,0x1F, //85 U +0x05,0x03,0x0C,0x10,0x0C,0x03, //86 V +0x05,0x1F,0x10,0x08,0x10,0x1F, //87 W +0x05,0x11,0x0A,0x04,0x0A,0x11, //88 X +0x05,0x01,0x02,0x1C,0x02,0x01, //89 Y +0x05,0x11,0x19,0x15,0x13,0x11, //90 Z +0x05,0x00,0x7F,0x41,0x41,0x41, //91 +0x05,0x02,0x04,0x08,0x10,0x20, //92 +0x05,0x00,0x41,0x41,0x41,0x7F, //93 +0x05,0x04,0x02,0x01,0x02,0x04, //94 +0x05,0x40,0x40,0x40,0x40,0x40, //95 +0x05,0x00,0x03,0x07,0x08,0x00, //96 +0x05,0x20,0x54,0x54,0x78,0x40, //97 a +0x05,0x7F,0x28,0x44,0x44,0x38, //98 b +0x05,0x38,0x44,0x44,0x44,0x28, //99 c +0x05,0x38,0x44,0x44,0x28,0x7F, //100 d +0x05,0x38,0x54,0x54,0x54,0x18, //101 e +0x05,0x00,0x08,0x7E,0x09,0x02, //102 f +0x05,0x18,0xA4,0xA4,0x9C,0x78, //103 g +0x05,0x7F,0x08,0x04,0x04,0x78, //104 h +0x05,0x00,0x44,0x7D,0x40,0x00, //105 i +0x05,0x20,0x40,0x40,0x3D,0x00, //106 j +0x05,0x7F,0x10,0x28,0x44,0x00, //107 k +0x05,0x00,0x41,0x7F,0x40,0x00, //108 l +0x05,0x7C,0x04,0x78,0x04,0x78, //109 m +0x05,0x7C,0x08,0x04,0x04,0x78, //110 n +0x05,0x38,0x44,0x44,0x44,0x38, //111 o +0x05,0xFC,0x18,0x24,0x24,0x18, //112 p +0x05,0x18,0x24,0x24,0x18,0xFC, //113 q +0x05,0x7C,0x08,0x04,0x04,0x08, //114 r +0x05,0x48,0x54,0x54,0x54,0x24, //115 s +0x05,0x04,0x04,0x3F,0x44,0x24, //116 t +0x05,0x3C,0x40,0x40,0x20,0x7C, //117 u +0x05,0x1C,0x20,0x40,0x20,0x1C, //118 v +0x05,0x3C,0x40,0x30,0x40,0x3C, //119 w +0x05,0x44,0x28,0x10,0x28,0x44, //120 x +0x05,0x4C,0x90,0x90,0x90,0x7C, //121 y +0x05,0x44,0x64,0x54,0x4C,0x44, //122 z +0x05,0x00,0x08,0x36,0x41,0x00, //123 { +0x05,0x00,0x00,0x77,0x00,0x00, //124 | +0x05,0x00,0x41,0x36,0x08,0x00, //125 } +0x05,0x02,0x01,0x02,0x04,0x02, //126 ~ +0x05,0x3C,0x26,0x23,0x26,0x3C, //127 (delete) +0x05,0x1E,0xA1,0xA1,0x61,0x12, //128 � +0x05,0x3A,0x40,0x40,0x20,0x7A, //129 +0x05,0x38,0x54,0x54,0x55,0x59, //130 � +0x05,0x21,0x55,0x55,0x79,0x41, //131 � +0x05,0x21,0x54,0x54,0x78,0x41, //132 � +0x05,0x21,0x55,0x54,0x78,0x40, //133 � +0x05,0x20,0x54,0x55,0x79,0x40, //134 � +0x05,0x0C,0x1E,0x52,0x72,0x12, //135 � +0x05,0x39,0x55,0x55,0x55,0x59, //136 � +0x05,0x39,0x54,0x54,0x54,0x59, //137 � +0x05,0x39,0x55,0x54,0x54,0x58, //138 � +0x05,0x00,0x00,0x45,0x7C,0x41, //139 � +0x05,0x00,0x02,0x45,0x7D,0x42, //140 � +0x05,0x00,0x01,0x45,0x7C,0x40, //141 +0x05,0xF0,0x29,0x24,0x29,0xF0, //142 � +0x05,0xF0,0x28,0x25,0x28,0xF0, //143 +0x05,0x7C,0x54,0x55,0x45,0x00, //144 +0x05,0x20,0x54,0x54,0x7C,0x54, //145 � +0x05,0x7C,0x0A,0x09,0x7F,0x49, //146 � +0x05,0x32,0x49,0x49,0x49,0x32, //147 � +0x05,0x32,0x48,0x48,0x48,0x32, //148 � +0x05,0x32,0x4A,0x48,0x48,0x30, //149 � +0x05,0x3A,0x41,0x41,0x21,0x7A, //150 � +0x05,0x3A,0x42,0x40,0x20,0x78, //151 � +0x05,0x00,0x9D,0xA0,0xA0,0x7D, //152 � +0x05,0x39,0x44,0x44,0x44,0x39, //153 � +0x05,0x3D,0x40,0x40,0x40,0x3D, //154 � +0x05,0x3C,0x24,0xFF,0x24,0x24, //155 � +0x05,0x48,0x7E,0x49,0x43,0x66, //156 � +0x05,0x2B,0x2F,0xFC,0x2F,0x2B, //157 +0x05,0xFF,0x09,0x29,0xF6,0x20, //158 � +0x05,0xC0,0x88,0x7E,0x09,0x03, //159 � +0x05,0x20,0x54,0x54,0x79,0x41, //160 +0x05,0x00,0x00,0x44,0x7D,0x41, //161 � +0x05,0x30,0x48,0x48,0x4A,0x32, //162 � +0x05,0x38,0x40,0x40,0x22,0x7A, //163 � +0x05,0x00,0x7A,0x0A,0x0A,0x72, //164 � +0x05,0x7D,0x0D,0x19,0x31,0x7D, //165 � +0x05,0x26,0x29,0x29,0x2F,0x28, //166 � +0x05,0x26,0x29,0x29,0x29,0x26, //167 � +0x05,0x30,0x48,0x4D,0x40,0x20, //168 � +0x05,0x38,0x08,0x08,0x08,0x08, //169 � +0x05,0x08,0x08,0x08,0x08,0x38, //170 � +0x05,0x2F,0x10,0xC8,0xAC,0xBA, //171 � +0x05,0x2F,0x10,0x28,0x34,0xFA, //172 � +0x05,0x00,0x00,0x7B,0x00,0x00, //173 +0x05,0x08,0x14,0x2A,0x14,0x22, //174 � +0x05,0x22,0x14,0x2A,0x14,0x08, //175 � +0x05,0xAA,0x00,0x55,0x00,0xAA, //176 � +0x05,0xAA,0x55,0xAA,0x55,0xAA, //177 � +0x05,0x00,0x00,0x00,0xFF,0x00, //178 � +0x05,0x10,0x10,0x10,0xFF,0x00, //179 � +0x05,0x14,0x14,0x14,0xFF,0x00, //180 � +0x05,0x10,0x10,0xFF,0x00,0xFF, //181 � +0x05,0x10,0x10,0xF0,0x10,0xF0, //182 � +0x05,0x14,0x14,0x14,0xFC,0x00, //183 � +0x05,0x14,0x14,0xF7,0x00,0xFF, //184 � +0x05,0x00,0x00,0xFF,0x00,0xFF, //185 � +0x05,0x14,0x14,0xF4,0x04,0xFC, //186 � +0x05,0x14,0x14,0x17,0x10,0x1F, //187 � +0x05,0x10,0x10,0x1F,0x10,0x1F, //188 � +0x05,0x14,0x14,0x14,0x1F,0x00, //189 � +0x05,0x10,0x10,0x10,0xF0,0x00, //190 � +0x05,0x00,0x00,0x00,0x1F,0x10, //191 � +0x05,0x10,0x10,0x10,0x1F,0x10, //192 � +0x05,0x10,0x10,0x10,0xF0,0x10, //193 � +0x05,0x00,0x00,0x00,0xFF,0x10, //194 � +0x05,0x10,0x10,0x10,0x10,0x10, //195 � +0x05,0x10,0x10,0x10,0xFF,0x10, //196 � +0x05,0x00,0x00,0x00,0xFF,0x14, //197 � +0x05,0x00,0x00,0xFF,0x00,0xFF, //198 � +0x05,0x00,0x00,0x1F,0x10,0x17, //199 � +0x05,0x00,0x00,0xFC,0x04,0xF4, //200 � +0x05,0x14,0x14,0x17,0x10,0x17, //201 � +0x05,0x14,0x14,0xF4,0x04,0xF4, //202 � +0x05,0x00,0x00,0xFF,0x00,0xF7, //203 � +0x05,0x14,0x14,0x14,0x14,0x14, //204 � +0x05,0x14,0x14,0xF7,0x00,0xF7, //205 � +0x05,0x14,0x14,0x14,0x17,0x14, //206 � +0x05,0x10,0x10,0x1F,0x10,0x1F, //207 � +0x05,0x14,0x14,0x14,0xF4,0x14, //208 � +0x05,0x10,0x10,0xF0,0x10,0xF0, //219 � +0x05,0x00,0x00,0x1F,0x10,0x1F, //210 � +0x05,0x00,0x00,0x00,0x1F,0x14, //211 � +0x05,0x00,0x00,0x00,0xFC,0x14, //212 � +0x05,0x00,0x00,0xF0,0x10,0xF0, //213 � +0x05,0x10,0x10,0xFF,0x10,0xFF, //214 � +0x05,0x14,0x14,0x14,0xFF,0x14, //215 � +0x05,0x10,0x10,0x10,0x1F,0x00, //216 � +0x05,0x00,0x00,0x00,0xF0,0x10, //217 � +0x05,0xFF,0xFF,0xFF,0xFF,0xFF, //218 � +0x05,0xF0,0xF0,0xF0,0xF0,0xF0, //219 � +0x05,0xFF,0xFF,0xFF,0x00,0x00, //220 � +0x05,0x00,0x00,0x00,0xFF,0xFF, //221 � +0x05,0x0F,0x0F,0x0F,0x0F,0x0F, //222 � +0x05,0x38,0x44,0x44,0x38,0x44, //223 � +0x05,0x7C,0x2A,0x2A,0x3E,0x14, //224 � +0x05,0x7E,0x02,0x02,0x06,0x06, //225 � +0x05,0x02,0x7E,0x02,0x7E,0x02, //226 � +0x05,0x63,0x55,0x49,0x41,0x63, //227 � +0x05,0x38,0x44,0x44,0x3C,0x04, //228 � +0x05,0x40,0x7E,0x20,0x1E,0x20, //239 � +0x05,0x06,0x02,0x7E,0x02,0x02, //230 � +0x05,0x99,0xA5,0xE7,0xA5,0x99, //231 � +0x05,0x1C,0x2A,0x49,0x2A,0x1C, //232 � +0x05,0x4C,0x72,0x01,0x72,0x4C, //233 � +0x05,0x30,0x4A,0x4D,0x4D,0x30, //234 � +0x05,0x30,0x48,0x78,0x48,0x30, //235 � +0x05,0xBC,0x62,0x5A,0x46,0x3D, //236 � +0x05,0x3E,0x49,0x49,0x49,0x00, //237 � +0x05,0x7E,0x01,0x01,0x01,0x7E, //238 � +0x05,0x2A,0x2A,0x2A,0x2A,0x2A, //239 � +0x05,0x44,0x44,0x5F,0x44,0x44, //240 � +0x05,0x40,0x51,0x4A,0x44,0x40, //241 � +0x05,0x40,0x44,0x4A,0x51,0x40, //242 � +0x05,0x00,0x00,0xFF,0x01,0x03, //243 � +0x05,0xE0,0x80,0xFF,0x00,0x00, //244 � +0x05,0x08,0x08,0x6B,0x6B,0x08, //245 � +0x05,0x36,0x12,0x36,0x24,0x36, //246 � +0x05,0x06,0x0F,0x09,0x0F,0x06, //247 � +0x05,0x00,0x00,0x18,0x18,0x00, //248 � +0x05,0x00,0x00,0x10,0x10,0x00, //249 � +0x05,0x30,0x40,0xFF,0x01,0x01, //250 � +0x05,0x00,0x1F,0x01,0x01,0x1E, //251 � +0x05,0x00,0x19,0x1D,0x17,0x12, //252 � +0x05,0x00,0x3C,0x3C,0x3C,0x3C, //253 � +0x05,0x00,0x00,0x00,0x00,0x00, //254 � +}; \ No newline at end of file diff --git a/ili9341/fonts/NeatoReduced5x7.c b/ili9341/fonts/NeatoReduced5x7.c new file mode 100644 index 0000000..36f9268 --- /dev/null +++ b/ili9341/fonts/NeatoReduced5x7.c @@ -0,0 +1,101 @@ +// Modified version of Standard ASCII 5x7 font +// NEATO ASCII 5x7 font (Reduced charset: 96 characters) +// BY: IxD SMART Design, ported by: aisencc +static const unsigned char font[] PROGMEM = { +0x05,0x00,0x00,0x00,0x00,0x00, //32 (space) +0x05,0x00,0x00,0x17,0x00,0x00, //33 ! +0x05,0x00,0x07,0x00,0x07,0x00, //34 +0x05,0x14,0x7F,0x14,0x7F,0x14, //35 # +0x05,0x24,0x2A,0x7F,0x2A,0x12, //36 $ +0x05,0x23,0x13,0x08,0x64,0x62, //37 % +0x05,0x36,0x49,0x56,0x20,0x50, //38 & +0x05,0x00,0x08,0x07,0x03,0x00, //39 ' +0x05,0x00,0x1C,0x22,0x41,0x00, //40 ( +0x05,0x00,0x41,0x22,0x1C,0x00, //41 ) +0x05,0x2A,0x1C,0x7F,0x1C,0x2A, //42 * +0x05,0x08,0x08,0x3E,0x08,0x08, //43 + +0x05,0x00,0x80,0x70,0x30,0x00, //44 +0x05,0x08,0x08,0x08,0x08,0x08, //45 - +0x05,0x00,0x00,0x60,0x60,0x00, //46 . +0x05,0x20,0x10,0x08,0x04,0x02, //47/ +0x05,0x3E,0x51,0x49,0x45,0x3E, //48 0 +0x05,0x00,0x42,0x7F,0x40,0x00, //49 1 +0x05,0x72,0x49,0x49,0x49,0x46, //50 2 +0x05,0x21,0x41,0x49,0x4D,0x33, //51 3 +0x05,0x18,0x14,0x12,0x7F,0x10, //52 4 +0x05,0x27,0x45,0x45,0x45,0x39, //53 5 +0x05,0x3C,0x4A,0x49,0x49,0x31, //54 6 +0x05,0x41,0x21,0x11,0x09,0x07, //55 7 +0x05,0x36,0x49,0x49,0x49,0x36, //56 8 +0x05,0x46,0x49,0x49,0x29,0x1E, //57 9 +0x05,0x00,0x00,0x14,0x00,0x00, //58 : +0x05,0x00,0x40,0x34,0x00,0x00, //59 ; +0x05,0x00,0x08,0x14,0x22,0x41, //60 < +0x05,0x14,0x14,0x14,0x14,0x14, //61 = +0x05,0x00,0x41,0x22,0x14,0x08, //62 > +0x05,0x02,0x01,0x59,0x09,0x06, //63 ? +0x05,0x3E,0x41,0x5D,0x59,0x4E, //64 @ +0x05,0x1F,0x05,0x05,0x05,0x1F, //65 A +0x05,0x1F,0x15,0x15,0x15,0x0E, //66 B +0x05,0x1F,0x11,0x11,0x11,0x11, //67 C +0x05,0x1F,0x11,0x11,0x11,0x0E, //68 D +0x05,0x1F,0x15,0x15,0x15,0x11, //69 E +0x05,0x1F,0x05,0x05,0x05,0x01, //70 F +0x05,0x1F,0x11,0x15,0x15,0x1D, //71 G +0x05,0x1F,0x04,0x04,0x04,0x1F, //72 H +0x05,0x11,0x11,0x1F,0x11,0x11, //73 I +0x05,0x11,0x11,0x1F,0x01,0x01, //74 J +0x05,0x1F,0x04,0x0A,0x11,0x00, //75 K +0x05,0x1F,0x10,0x10,0x10,0x00, //76 L +0x05,0x1F,0x02,0x04,0x02,0x1F, //77 M +0x05,0x1F,0x02,0x04,0x08,0x1F, //78 N +0x05,0x1F,0x11,0x11,0x11,0x1F, //79 O +0x05,0x1F,0x05,0x05,0x05,0x07, //80 P +0x05,0x1F,0x11,0x11,0x19,0x1F, //81 Q +0x05,0x1F,0x05,0x05,0x0D,0x17, //82 R +0x05,0x17,0x15,0x15,0x15,0x1D, //83 S +0x05,0x01,0x01,0x1F,0x01,0x01, //84 T +0x05,0x1F,0x10,0x10,0x10,0x1F, //85 U +0x05,0x03,0x0C,0x10,0x0C,0x03, //86 V +0x05,0x1F,0x10,0x08,0x10,0x1F, //87 W +0x05,0x11,0x0A,0x04,0x0A,0x11, //88 X +0x05,0x01,0x02,0x1C,0x02,0x01, //89 Y +0x05,0x11,0x19,0x15,0x13,0x11, //90 Z +0x05,0x00,0x7F,0x41,0x41,0x41, //91 +0x05,0x02,0x04,0x08,0x10,0x20, //92 +0x05,0x00,0x41,0x41,0x41,0x7F, //93 +0x05,0x04,0x02,0x01,0x02,0x04, //94 +0x05,0x40,0x40,0x40,0x40,0x40, //95 +0x05,0x00,0x03,0x07,0x08,0x00, //96 +0x05,0x20,0x54,0x54,0x78,0x40, //97 a +0x05,0x7F,0x28,0x44,0x44,0x38, //98 b +0x05,0x38,0x44,0x44,0x44,0x28, //99 c +0x05,0x38,0x44,0x44,0x28,0x7F, //100 d +0x05,0x38,0x54,0x54,0x54,0x18, //101 e +0x05,0x00,0x08,0x7E,0x09,0x02, //102 f +0x05,0x18,0xA4,0xA4,0x9C,0x78, //103 g +0x05,0x7F,0x08,0x04,0x04,0x78, //104 h +0x05,0x00,0x44,0x7D,0x40,0x00, //105 i +0x05,0x20,0x40,0x40,0x3D,0x00, //106 j +0x05,0x7F,0x10,0x28,0x44,0x00, //107 k +0x05,0x00,0x41,0x7F,0x40,0x00, //108 l +0x05,0x7C,0x04,0x78,0x04,0x78, //109 m +0x05,0x7C,0x08,0x04,0x04,0x78, //110 n +0x05,0x38,0x44,0x44,0x44,0x38, //111 o +0x05,0xFC,0x18,0x24,0x24,0x18, //112 p +0x05,0x18,0x24,0x24,0x18,0xFC, //113 q +0x05,0x7C,0x08,0x04,0x04,0x08, //114 r +0x05,0x48,0x54,0x54,0x54,0x24, //115 s +0x05,0x04,0x04,0x3F,0x44,0x24, //116 t +0x05,0x3C,0x40,0x40,0x20,0x7C, //117 u +0x05,0x1C,0x20,0x40,0x20,0x1C, //118 v +0x05,0x3C,0x40,0x30,0x40,0x3C, //119 w +0x05,0x44,0x28,0x10,0x28,0x44, //120 x +0x05,0x4C,0x90,0x90,0x90,0x7C, //121 y +0x05,0x44,0x64,0x54,0x4C,0x44, //122 z +0x05,0x00,0x08,0x36,0x41,0x00, //123 { +0x05,0x00,0x00,0x77,0x00,0x00, //124 | +0x05,0x00,0x41,0x36,0x08,0x00, //125 } +0x05,0x02,0x01,0x02,0x04,0x02, //126 ~ +0x05,0x3C,0x26,0x23,0x26,0x3C, //127 (delete) +}; \ No newline at end of file diff --git a/ili9341/fonts/Robotron13x21.c b/ili9341/fonts/Robotron13x21.c new file mode 100644 index 0000000..2fba506 --- /dev/null +++ b/ili9341/fonts/Robotron13x21.c @@ -0,0 +1,72 @@ +//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0 +//MikroElektronika 2011 +//http://www.mikroe.com + +//GLCD FontName : Robotron13x21 +//GLCD FontSize : 13 x 21 (62 characters) + +const unsigned short Robotron13x21[] = { + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + 0x03, 0xFC, 0x9F, 0x03, 0xFC, 0x9F, 0x03, 0xFC, 0x9F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! + 0x08, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char " + 0x0D, 0x80, 0x73, 0x00, 0x80, 0x73, 0x00, 0x80, 0x73, 0x00, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0x03, 0x80, 0x73, 0x00, 0x80, 0x73, 0x00, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0x03, 0x80, 0x73, 0x00, 0x80, 0x73, 0x00, // Code for char # + 0x0D, 0xFC, 0xE3, 0x03, 0xFC, 0xE3, 0x03, 0xFC, 0xE3, 0x03, 0x9C, 0xE3, 0x03, 0x9C, 0xE3, 0x03, 0x9F, 0x83, 0x1F, 0x9F, 0x83, 0x1F, 0x9F, 0x83, 0x1F, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0xFF, 0x03, // Code for char $ + 0x0B, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char % + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, // Code for char & + 0x03, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' + 0x08, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0x07, 0x00, 0x1C, 0x07, 0x00, 0x1C, 0x07, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ( + 0x08, 0x03, 0x00, 0x1C, 0x03, 0x00, 0x1C, 0x03, 0x00, 0x1C, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ) + 0x0D, 0x60, 0x1C, 0x00, 0x60, 0x1C, 0x00, 0x60, 0x1C, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0xFC, 0x7F, 0x00, 0xFC, 0x7F, 0x00, 0xFC, 0x7F, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x60, 0x1C, 0x00, 0x60, 0x1C, 0x00, 0x60, 0x1C, 0x00, // Code for char * + 0x08, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0xE0, 0x1F, 0x00, 0xE0, 0x1F, 0x00, 0xE0, 0x1F, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + + 0x03, 0x00, 0x80, 0x1F, 0x00, 0x80, 0x1F, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char , + 0x08, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char - + 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char . + 0x05, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char / + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, // Code for char 0 + 0x0B, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 1 + 0x0D, 0x80, 0xFF, 0x03, 0x80, 0xFF, 0x03, 0x80, 0xFF, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, // Code for char 2 + 0x0D, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, // Code for char 3 + 0x0D, 0xFC, 0x1F, 0x00, 0xFC, 0x1F, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0x03, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, // Code for char 4 + 0x0D, 0xFC, 0x83, 0x03, 0xFC, 0x83, 0x03, 0xFC, 0x83, 0x03, 0x1C, 0x83, 0x03, 0x1C, 0x83, 0x03, 0x1C, 0x83, 0x03, 0x1C, 0x83, 0x03, 0x1C, 0x83, 0x03, 0x1C, 0x83, 0x03, 0x1C, 0x83, 0x03, 0x00, 0x83, 0x03, 0x00, 0xFF, 0x03, 0x00, 0xFF, 0x03, // Code for char 5 + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x80, 0xFF, 0x03, 0x80, 0xFF, 0x03, 0x80, 0xFF, 0x03, // Code for char 6 + 0x0D, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x60, 0x00, 0x1C, 0x60, 0x00, 0x1C, 0x60, 0x00, 0x1C, 0x1C, 0x00, 0x1C, 0x1C, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, // Code for char 7 + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, // Code for char 8 + 0x0D, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, // Code for char 9 + 0x03, 0x80, 0x83, 0x03, 0x80, 0x83, 0x03, 0x80, 0x83, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char : + 0x03, 0x80, 0x03, 0x1F, 0x80, 0x03, 0x1F, 0x80, 0x03, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ; + 0x08, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x70, 0x00, 0xE0, 0x70, 0x00, 0xE0, 0x70, 0x00, 0xE0, 0x70, 0x00, 0xE0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char < + 0x08, 0xE0, 0x1C, 0x00, 0xE0, 0x1C, 0x00, 0xE0, 0x1C, 0x00, 0xE0, 0x1C, 0x00, 0xE0, 0x1C, 0x00, 0xE0, 0x1C, 0x00, 0xE0, 0x1C, 0x00, 0xE0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char = + 0x08, 0xE0, 0x60, 0x00, 0xE0, 0x60, 0x00, 0xE0, 0x60, 0x00, 0xE0, 0x60, 0x00, 0xE0, 0x60, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char > + 0x0D, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x1C, 0x9C, 0x03, 0x1C, 0x9C, 0x03, 0x1C, 0x9C, 0x03, 0x1C, 0x1C, 0x00, 0x1C, 0x1C, 0x00, 0xFC, 0x1F, 0x00, 0xFC, 0x1F, 0x00, 0xFC, 0x1F, 0x00, // Code for char ? + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0xFC, 0x9F, 0x03, 0xFC, 0x9F, 0x03, 0xFC, 0x9F, 0x03, 0x1C, 0x9C, 0x03, 0x1C, 0x9C, 0x03, 0xFC, 0x9F, 0x03, 0xFC, 0x9F, 0x03, 0xFC, 0x9F, 0x03, // Code for char @ + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, // Code for char A + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0xFC, 0x83, 0x03, 0xFC, 0x83, 0x03, 0x80, 0xFF, 0x03, 0x80, 0xFF, 0x03, 0x80, 0xFF, 0x03, // Code for char B + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, // Code for char C + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0xE0, 0x7F, 0x00, 0xE0, 0x7F, 0x00, 0xE0, 0x7F, 0x00, // Code for char D + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, // Code for char E + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, // Code for char F + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0xFC, 0x9C, 0x03, 0xFC, 0x9C, 0x03, 0xFC, 0xFC, 0x03, 0xFC, 0xFC, 0x03, 0xFC, 0xFC, 0x03, // Code for char G + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, // Code for char H + 0x05, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I + 0x0D, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, // Code for char J + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x70, 0x00, 0xE0, 0x70, 0x00, 0xE0, 0x70, 0x00, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, // Code for char K + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, // Code for char L + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, // Code for char M + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, // Code for char N + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0xFC, 0x80, 0x03, 0xFC, 0x80, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, // Code for char O + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, // Code for char P + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0xE0, 0x1F, 0x1C, 0xE0, 0x1F, 0x1C, 0xE0, 0x1F, 0x1C, 0xE0, 0x1F, 0x1C, 0xE0, 0x1F, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, // Code for char Q + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0x80, 0xFF, 0x03, 0x80, 0xFF, 0x03, 0x80, 0xFF, 0x03, // Code for char R + 0x0D, 0xFC, 0xE3, 0x03, 0xFC, 0xE3, 0x03, 0xFC, 0xE3, 0x03, 0x9C, 0xE3, 0x03, 0x9C, 0xE3, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0xFF, 0x03, // Code for char S + 0x0D, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x9C, 0xFF, 0x03, 0x1C, 0x00, 0x00, 0x1C, 0x00, 0x00, // Code for char T + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, // Code for char U + 0x0D, 0xFC, 0x1F, 0x00, 0xFC, 0x1F, 0x00, 0xFC, 0x1F, 0x00, 0xFC, 0x7F, 0x00, 0xFC, 0x7F, 0x00, 0xFC, 0x7F, 0x00, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0xFC, 0x1F, 0x00, 0xFC, 0x1F, 0x00, // Code for char V + 0x0D, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0x00, 0x80, 0x03, 0x00, 0x80, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, // Code for char W + 0x0D, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0xE0, 0x70, 0x00, 0xE0, 0x70, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0xE0, 0x70, 0x00, 0xE0, 0x70, 0x00, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, 0x1C, 0x80, 0x03, // Code for char X + 0x0D, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0x80, 0xFF, 0x03, 0x80, 0xFF, 0x03, 0x80, 0xFF, 0x03, 0x80, 0x03, 0x00, 0x80, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, // Code for char Y + 0x0D, 0xFC, 0x80, 0x03, 0xFC, 0x80, 0x03, 0xFC, 0x80, 0x03, 0xFC, 0xE0, 0x03, 0xFC, 0xE0, 0x03, 0x1C, 0x9C, 0x03, 0x1C, 0x9C, 0x03, 0x1C, 0x9C, 0x03, 0x9C, 0x83, 0x03, 0x9C, 0x83, 0x03, 0xFC, 0x80, 0x03, 0xFC, 0x80, 0x03, 0xFC, 0x80, 0x03, // Code for char Z + 0x08, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0x07, 0x00, 0x1C, 0x07, 0x00, 0x1C, 0x07, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [ + 0x05, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0x00, 0xFC, 0x03, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash + 0x08, 0x03, 0x00, 0x1C, 0x03, 0x00, 0x1C, 0x03, 0x00, 0x1C, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char ] + }; + diff --git a/ili9341/fonts/Robotron7x11.c b/ili9341/fonts/Robotron7x11.c new file mode 100644 index 0000000..daba838 --- /dev/null +++ b/ili9341/fonts/Robotron7x11.c @@ -0,0 +1,105 @@ +//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0 +//MikroElektronika 2011 +//http://www.mikroe.com + +//GLCD FontName : Robotron7x11 +//GLCD FontSize : 7 x 11 + + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + 0x02, 0x00, 0x00, 0x7C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! + 0x05, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char " + 0x07, 0x10, 0x01, 0xF8, 0x03, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0xF8, 0x03, 0x10, 0x01, // Code for char # + 0x07, 0x9C, 0x03, 0x94, 0x03, 0x94, 0x03, 0x17, 0x06, 0x14, 0x02, 0x14, 0x02, 0xF4, 0x03, // Code for char $ + 0x06, 0x0C, 0x00, 0xC0, 0x03, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x00, 0x03, 0x00, 0x00, // Code for char % + 0x07, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x14, 0x02, 0x60, 0x02, 0x60, 0x02, 0xE0, 0x03, // Code for char & + 0x02, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' + 0x05, 0x00, 0x00, 0xFF, 0x07, 0xFF, 0x07, 0x01, 0x04, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, // Code for char ( + 0x05, 0x00, 0x00, 0x03, 0x04, 0xFF, 0x07, 0xFF, 0x07, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, // Code for char ) + 0x07, 0x68, 0x00, 0x10, 0x00, 0x10, 0x00, 0xFC, 0x01, 0x10, 0x00, 0x10, 0x00, 0x68, 0x00, // Code for char * + 0x05, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x78, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char , + 0x05, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char - + 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char . + 0x03, 0xC0, 0x03, 0xC0, 0x03, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char / + 0x07, 0xFC, 0x03, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0xFC, 0x03, // Code for char 0 + 0x07, 0x00, 0x00, 0x00, 0x02, 0x04, 0x02, 0x04, 0x02, 0xFC, 0x03, 0x00, 0x02, 0x00, 0x02, // Code for char 1 + 0x07, 0xF0, 0x03, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0x1C, 0x00, // Code for char 2 + 0x07, 0x00, 0x02, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0xFC, 0x03, // Code for char 3 + 0x07, 0x7C, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xF8, 0x03, 0x40, 0x00, // Code for char 4 + 0x07, 0x7C, 0x02, 0x74, 0x02, 0x74, 0x02, 0x74, 0x02, 0x74, 0x02, 0x70, 0x02, 0xF0, 0x03, // Code for char 5 + 0x07, 0xFC, 0x03, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0xF0, 0x03, // Code for char 6 + 0x07, 0x04, 0x02, 0x84, 0x01, 0x44, 0x00, 0x44, 0x00, 0x34, 0x00, 0x34, 0x00, 0x1C, 0x00, // Code for char 7 + 0x07, 0xFC, 0x03, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0xFC, 0x03, // Code for char 8 + 0x07, 0x1C, 0x00, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0xFC, 0x03, // Code for char 9 + 0x02, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char : + 0x02, 0x00, 0x00, 0x10, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ; + 0x05, 0x00, 0x00, 0xF0, 0x00, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char < + 0x05, 0x00, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char = + 0x05, 0x00, 0x00, 0x98, 0x01, 0x98, 0x01, 0x98, 0x01, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char > + 0x07, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x44, 0x02, 0x44, 0x00, 0x44, 0x00, 0x7C, 0x00, // Code for char ? + 0x07, 0xFC, 0x03, 0x04, 0x02, 0x04, 0x02, 0x7C, 0x02, 0x44, 0x02, 0x44, 0x02, 0x7C, 0x02, // Code for char @ + 0x07, 0xFC, 0x03, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0xFC, 0x03, 0xFC, 0x03, // Code for char A + 0x07, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x14, 0x02, 0x1C, 0x02, 0x1C, 0x02, 0xF0, 0x03, // Code for char B + 0x07, 0xFC, 0x03, 0xFC, 0x03, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, // Code for char C + 0x07, 0xFC, 0x03, 0xFC, 0x03, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0xF8, 0x01, // Code for char D + 0x07, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, // Code for char E + 0x07, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, // Code for char F + 0x07, 0xFC, 0x03, 0xFC, 0x03, 0x04, 0x02, 0x04, 0x02, 0x5C, 0x02, 0x5C, 0x02, 0xDC, 0x03, // Code for char G + 0x07, 0xFC, 0x03, 0xFC, 0x03, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xFC, 0x03, // Code for char H + 0x03, 0x00, 0x00, 0xFC, 0x03, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I + 0x07, 0x80, 0x03, 0x80, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0xFC, 0x03, // Code for char J + 0x07, 0xFC, 0x03, 0xFC, 0x03, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x08, 0x01, 0x04, 0x02, // Code for char K + 0x07, 0xFC, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, // Code for char L + 0x07, 0xFC, 0x03, 0x04, 0x00, 0x04, 0x00, 0x3C, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFC, 0x03, // Code for char M + 0x07, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFC, 0x03, // Code for char N + 0x07, 0xFC, 0x03, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x1C, 0x02, 0x1C, 0x02, 0xFC, 0x03, // Code for char O + 0x07, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x1C, 0x00, // Code for char P + 0x07, 0xFC, 0x03, 0x04, 0x02, 0x04, 0x02, 0x84, 0x07, 0x84, 0x07, 0x84, 0x07, 0xFC, 0x03, // Code for char Q + 0x07, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x14, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0xF0, 0x03, // Code for char R + 0x07, 0x9C, 0x03, 0x94, 0x03, 0x94, 0x03, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0xF4, 0x03, // Code for char S + 0x07, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x04, 0x00, // Code for char T + 0x07, 0xFC, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0xFC, 0x03, 0xFC, 0x03, // Code for char U + 0x07, 0x7C, 0x00, 0xFC, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x80, 0x01, 0x7C, 0x00, // Code for char V + 0x07, 0xFC, 0x03, 0x80, 0x03, 0x80, 0x03, 0xFC, 0x03, 0x00, 0x02, 0x00, 0x02, 0xFC, 0x03, // Code for char W + 0x07, 0x04, 0x02, 0x08, 0x01, 0x08, 0x01, 0xF0, 0x00, 0x08, 0x01, 0x08, 0x01, 0x04, 0x02, // Code for char X + 0x07, 0x00, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0xF0, 0x03, 0x10, 0x00, 0x10, 0x00, 0x1C, 0x00, // Code for char Y + 0x07, 0x1C, 0x02, 0x9C, 0x03, 0x9C, 0x03, 0x44, 0x02, 0x34, 0x02, 0x34, 0x02, 0x1C, 0x02, // Code for char Z + 0x05, 0x00, 0x00, 0xFF, 0x07, 0xFF, 0x07, 0x01, 0x04, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, // Code for char [ + 0x03, 0x3C, 0x00, 0xC0, 0x03, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash + 0x05, 0x00, 0x00, 0x03, 0x04, 0xFF, 0x07, 0xFF, 0x07, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, // Code for char ] + 0x05, 0x00, 0x00, 0xFF, 0x03, 0x01, 0x02, 0x01, 0x02, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, // Code for char ^ + 0x07, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, // Code for char _ + 0x05, 0x00, 0x00, 0xFF, 0x03, 0x01, 0x02, 0x01, 0x02, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, // Code for char ` + 0x07, 0xFC, 0x03, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0xFC, 0x03, 0xFC, 0x03, // Code for char a + 0x07, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x14, 0x02, 0x1C, 0x02, 0x1C, 0x02, 0xF0, 0x03, // Code for char b + 0x07, 0xFC, 0x03, 0xFC, 0x03, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, // Code for char c + 0x07, 0xFC, 0x03, 0xFC, 0x03, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0xF8, 0x01, // Code for char d + 0x07, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, // Code for char e + 0x07, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, // Code for char f + 0x07, 0xFC, 0x03, 0xFC, 0x03, 0x04, 0x02, 0x04, 0x02, 0x5C, 0x02, 0x5C, 0x02, 0xDC, 0x03, // Code for char g + 0x07, 0xFC, 0x03, 0xFC, 0x03, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xFC, 0x03, // Code for char h + 0x03, 0x00, 0x00, 0xFC, 0x03, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char i + 0x07, 0x80, 0x03, 0x80, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0xFC, 0x03, // Code for char j + 0x07, 0xFC, 0x03, 0xFC, 0x03, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x08, 0x01, 0x04, 0x02, // Code for char k + 0x07, 0xFC, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, // Code for char l + 0x07, 0xFC, 0x03, 0x04, 0x00, 0x04, 0x00, 0x3C, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFC, 0x03, // Code for char m + 0x07, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFC, 0x03, // Code for char n + 0x07, 0xFC, 0x03, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x1C, 0x02, 0x1C, 0x02, 0xFC, 0x03, // Code for char o + 0x07, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x1C, 0x00, // Code for char p + 0x07, 0xFC, 0x03, 0x04, 0x02, 0x04, 0x02, 0x84, 0x07, 0x84, 0x07, 0x84, 0x07, 0xFC, 0x03, // Code for char q + 0x07, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x14, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0xF0, 0x03, // Code for char r + 0x07, 0x9C, 0x03, 0x94, 0x03, 0x94, 0x03, 0x14, 0x02, 0x14, 0x02, 0x14, 0x02, 0xF4, 0x03, // Code for char s + 0x07, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFC, 0x03, 0xF4, 0x03, 0xF4, 0x03, 0x04, 0x00, // Code for char t + 0x07, 0xFC, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0xFC, 0x03, 0xFC, 0x03, // Code for char u + 0x07, 0x7C, 0x00, 0xFC, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x80, 0x01, 0x7C, 0x00, // Code for char v + 0x07, 0xFC, 0x03, 0x80, 0x03, 0x80, 0x03, 0xFC, 0x03, 0x00, 0x02, 0x00, 0x02, 0xFC, 0x03, // Code for char w + 0x07, 0x04, 0x02, 0x08, 0x01, 0x08, 0x01, 0xF0, 0x00, 0x08, 0x01, 0x08, 0x01, 0x04, 0x02, // Code for char x + 0x07, 0x00, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0xF0, 0x03, 0x10, 0x00, 0x10, 0x00, 0x1C, 0x00, // Code for char y + 0x07, 0x1C, 0x02, 0x9C, 0x03, 0x9C, 0x03, 0x44, 0x02, 0x34, 0x02, 0x34, 0x02, 0x1C, 0x02, // Code for char z + 0x07, 0x00, 0x00, 0x60, 0x00, 0xFF, 0x07, 0xFF, 0x07, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, // Code for char { + 0x02, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char | + 0x06, 0x00, 0x00, 0x03, 0x04, 0xFF, 0x07, 0xFF, 0x07, 0xFF, 0x07, 0x60, 0x00, 0x00, 0x00, // Code for char } + 0x05, 0x00, 0x00, 0xFF, 0x03, 0x01, 0x02, 0x01, 0x02, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, // Code for char ~ + 0x02, 0xF8, 0x01, 0xF8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char  + + diff --git a/ili9341/fonts/UbuntuMono12x24.c b/ili9341/fonts/UbuntuMono12x24.c new file mode 100644 index 0000000..cefdf52 --- /dev/null +++ b/ili9341/fonts/UbuntuMono12x24.c @@ -0,0 +1,238 @@ + +//WARNING: This Font Require X-GLCD Lib. +// You can not use it with MikroE GLCD Lib. + +//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0 +//MikroElektronika 2011 +//http://www.mikroe.com + +//GLCD FontName : Ubuntu_Mono12x24 +//GLCD FontSize : 12 x 24 + +const unsigned short Ubuntu_Mono12x24[] = { + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x7F, 0x0E, 0xE0, 0x7F, 0x0E, 0xE0, 0x7F, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0xF0, 0x07, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0xF0, 0x07, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char " + 0x0C, 0x00, 0xC6, 0x00, 0x00, 0xC6, 0x0E, 0x00, 0xF6, 0x0F, 0x00, 0xFF, 0x01, 0xE0, 0xCF, 0x00, 0xE0, 0xC6, 0x00, 0x00, 0xC6, 0x0E, 0x00, 0xF6, 0x0F, 0x00, 0xFF, 0x01, 0xE0, 0xCF, 0x00, 0xE0, 0xC6, 0x00, 0x00, 0xC6, 0x00, // Code for char # + 0x0B, 0x00, 0x00, 0x00, 0x80, 0x07, 0x02, 0xC0, 0x0F, 0x07, 0xE0, 0x0F, 0x06, 0x78, 0x1C, 0x3E, 0x78, 0x1C, 0x3E, 0x78, 0x18, 0x3E, 0x60, 0x38, 0x06, 0x60, 0xF0, 0x07, 0x60, 0xF0, 0x03, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, // Code for char $ + 0x0C, 0xC0, 0x07, 0x08, 0xE0, 0x0F, 0x0E, 0x60, 0x0C, 0x07, 0x60, 0xCC, 0x03, 0xE0, 0xFF, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0xDE, 0x07, 0x80, 0xE7, 0x0F, 0xC0, 0x61, 0x0C, 0xE0, 0x60, 0x0C, 0x20, 0xE0, 0x0F, 0x00, 0xC0, 0x07, // Code for char % + 0x0C, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x80, 0xE7, 0x07, 0xC0, 0x7F, 0x0E, 0xE0, 0x3F, 0x0C, 0x60, 0x78, 0x0C, 0xE0, 0xEF, 0x0C, 0xC0, 0xCF, 0x0F, 0x80, 0x83, 0x07, 0x00, 0xF0, 0x07, 0x00, 0xF0, 0x0C, 0x00, 0x00, 0x08, // Code for char & + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0xF0, 0x07, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0xFF, 0x07, 0xC0, 0xFF, 0x1F, 0xE0, 0x03, 0x3E, 0xF0, 0x00, 0x78, 0x70, 0x00, 0x70, 0x38, 0x00, 0xE0, 0x10, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ( + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x40, 0x38, 0x00, 0xE0, 0x70, 0x00, 0x70, 0xF0, 0x00, 0x78, 0xE0, 0x03, 0x3E, 0xC0, 0xFF, 0x1F, 0x00, 0xFF, 0x07, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ) + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x80, 0x13, 0x00, 0x00, 0x3B, 0x00, 0xE0, 0x3E, 0x00, 0xE0, 0x07, 0x00, 0xE0, 0x3E, 0x00, 0x00, 0x1B, 0x00, 0x80, 0x13, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char * + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0xFE, 0x07, 0x00, 0xFE, 0x07, 0x00, 0xFE, 0x07, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, // Code for char + + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char , + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char - + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char . + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0xC0, 0x7F, 0x00, 0xF8, 0x0F, 0x80, 0xFF, 0x01, 0xF0, 0x3F, 0x00, 0xF8, 0x07, 0x00, 0xF8, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char / + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xE0, 0x00, 0x0E, 0x60, 0x38, 0x0C, 0x60, 0x38, 0x0C, 0xE0, 0x00, 0x0E, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, // Code for char 0 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x0C, 0x80, 0x03, 0x0C, 0xC0, 0x03, 0x0C, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, // Code for char 1 + 0x0B, 0x00, 0x00, 0x00, 0x40, 0x00, 0x0F, 0xC0, 0x80, 0x0F, 0x60, 0xC0, 0x0F, 0x60, 0xE0, 0x0D, 0x60, 0xF0, 0x0C, 0xE0, 0x7C, 0x0C, 0xE0, 0x3F, 0x0C, 0xC0, 0x1F, 0x0C, 0x80, 0x07, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, // Code for char 2 + 0x0B, 0x00, 0x00, 0x00, 0x40, 0x00, 0x04, 0xE0, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x60, 0x18, 0x0C, 0x60, 0x18, 0x0C, 0x60, 0x1C, 0x0C, 0xE0, 0x3F, 0x0E, 0xC0, 0xFF, 0x07, 0x80, 0xE7, 0x07, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, // Code for char 3 + 0x0C, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xDF, 0x00, 0x80, 0xC7, 0x00, 0xC0, 0xC1, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, // Code for char 4 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x80, 0x0F, 0x0C, 0xE0, 0x0F, 0x0C, 0xE0, 0x0F, 0x0C, 0x60, 0x0C, 0x0C, 0x60, 0x1C, 0x0C, 0x60, 0x1C, 0x0E, 0x60, 0xF8, 0x07, 0x60, 0xF0, 0x07, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, // Code for char 5 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0xC0, 0x1B, 0x0E, 0xC0, 0x0C, 0x0C, 0xE0, 0x0C, 0x0C, 0x60, 0x18, 0x0E, 0x60, 0xF8, 0x07, 0x60, 0xF8, 0x07, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, // Code for char 6 + 0x0A, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x0E, 0x60, 0xC0, 0x0F, 0x60, 0xF8, 0x0F, 0x60, 0xFE, 0x01, 0x60, 0x1F, 0x00, 0xE0, 0x07, 0x00, 0xE0, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 7 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x03, 0xC0, 0xEF, 0x07, 0xC0, 0xFF, 0x0F, 0xE0, 0x3C, 0x0E, 0x60, 0x18, 0x0C, 0x60, 0x38, 0x0C, 0x60, 0x7C, 0x0E, 0xE0, 0xFF, 0x0F, 0xC0, 0xE7, 0x07, 0x80, 0xC3, 0x03, 0x00, 0x00, 0x00, // Code for char 8 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0xC0, 0x3F, 0x0C, 0xC0, 0x3F, 0x0C, 0xE0, 0x30, 0x0C, 0x60, 0x60, 0x0E, 0x60, 0x60, 0x07, 0xE0, 0xB0, 0x07, 0xC0, 0xFF, 0x03, 0xC0, 0xFF, 0x01, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, // Code for char 9 + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x06, 0x00, 0x1E, 0x0F, 0x00, 0x1E, 0x0F, 0x00, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char : + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x0C, 0xC6, 0x00, 0x1E, 0x6F, 0x00, 0x1E, 0x3F, 0x00, 0x0C, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ; + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF8, 0x01, 0x00, 0xF8, 0x01, 0x00, 0x9C, 0x01, 0x00, 0x9C, 0x03, 0x00, 0x0C, 0x03, 0x00, 0x0E, 0x07, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, // Code for char < + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x00, 0x00, // Code for char = + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x0E, 0x07, 0x00, 0x0C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0x9C, 0x03, 0x00, 0xF8, 0x01, 0x00, 0xF8, 0x01, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, // Code for char > + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x70, 0x0E, 0x60, 0x78, 0x0E, 0x60, 0x7C, 0x0E, 0xE0, 0x3F, 0x00, 0xC0, 0x0F, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ? + 0x0B, 0x00, 0xFC, 0x03, 0x80, 0xFF, 0x0F, 0xC0, 0x03, 0x1C, 0xC0, 0x00, 0x30, 0x60, 0xF8, 0x31, 0x60, 0xFC, 0x63, 0x60, 0x0E, 0x67, 0x60, 0x06, 0x66, 0xE0, 0x06, 0x66, 0xC0, 0xFF, 0x67, 0x00, 0xFF, 0x67, 0x00, 0x00, 0x00, // Code for char @ + 0x0C, 0x00, 0x00, 0x0C, 0x00, 0xC0, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0xFF, 0x07, 0xE0, 0xFF, 0x01, 0xE0, 0x83, 0x01, 0xE0, 0x83, 0x01, 0xE0, 0xFF, 0x01, 0x80, 0xFF, 0x07, 0x00, 0xFC, 0x0F, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0C, // Code for char A + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x60, 0x18, 0x0C, 0x60, 0x18, 0x0C, 0x60, 0x1C, 0x0C, 0xE0, 0x3F, 0x0E, 0xC0, 0xFF, 0x07, 0x80, 0xE7, 0x07, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, // Code for char B + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0x01, 0x0F, 0xE0, 0x00, 0x0E, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0xE0, 0x00, 0x0E, 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, // Code for char C + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0xE0, 0x00, 0x0E, 0xC0, 0x01, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, // Code for char D + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x60, 0x18, 0x0C, 0x60, 0x18, 0x0C, 0x60, 0x18, 0x0C, 0x60, 0x18, 0x0C, 0x60, 0x18, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, // Code for char E + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x60, 0x18, 0x00, 0x60, 0x18, 0x00, 0x60, 0x18, 0x00, 0x60, 0x18, 0x00, 0x60, 0x18, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0x01, 0x0F, 0xE0, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x60, 0xF0, 0x0F, 0xE0, 0xF0, 0x0F, 0x60, 0xF0, 0x0F, 0x00, 0x00, 0x00, // Code for char G + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, // Code for char H + 0x0A, 0x00, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0E, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0E, 0xE0, 0xFF, 0x07, 0xE0, 0xFF, 0x07, 0xE0, 0xFF, 0x01, 0x00, 0x00, 0x00, // Code for char J + 0x0C, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0x38, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFF, 0x00, 0xC0, 0xE7, 0x01, 0xE0, 0xC1, 0x07, 0xE0, 0x80, 0x0F, 0x20, 0x00, 0x0E, 0x00, 0x00, 0x08, // Code for char K + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, // Code for char L + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x80, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x80, 0x1F, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0x00, 0x00, // Code for char M + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xC0, 0x07, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x78, 0x00, 0x00, 0xE0, 0x03, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, // Code for char N + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xE0, 0x00, 0x0E, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0xE0, 0x00, 0x0E, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, // Code for char O + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x60, 0x70, 0x00, 0x60, 0x60, 0x00, 0x60, 0x60, 0x00, 0xE0, 0x70, 0x00, 0xC0, 0x3F, 0x00, 0xC0, 0x3F, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, // Code for char P + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xE0, 0x00, 0x0E, 0x60, 0x00, 0x3C, 0x60, 0x00, 0x7C, 0xE0, 0x00, 0x6E, 0xC0, 0xFF, 0xE7, 0x80, 0xFF, 0xC3, 0x00, 0xFE, 0x40, 0x00, 0x00, 0x00, // Code for char Q + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x60, 0x30, 0x00, 0x60, 0x70, 0x00, 0x60, 0xF0, 0x01, 0xE0, 0xF8, 0x07, 0xC0, 0x9F, 0x0F, 0xC0, 0x0F, 0x0F, 0x80, 0x07, 0x08, 0x00, 0x00, 0x00, // Code for char R + 0x0B, 0x00, 0x00, 0x00, 0x80, 0x07, 0x04, 0xC0, 0x0F, 0x0E, 0xE0, 0x1F, 0x0C, 0xE0, 0x1C, 0x0C, 0x60, 0x18, 0x0C, 0x60, 0x38, 0x0C, 0x60, 0x70, 0x0E, 0xE0, 0xF0, 0x0F, 0x40, 0xE0, 0x07, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, // Code for char S + 0x0C, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, // Code for char T + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0x07, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x07, 0xE0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char U + 0x0B, 0x60, 0x00, 0x00, 0xE0, 0x07, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0xFF, 0x03, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x0E, 0x00, 0xE0, 0x0F, 0x00, 0xFF, 0x03, 0xE0, 0x7F, 0x00, 0xE0, 0x0F, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char V + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0xF0, 0x03, 0x00, 0x7C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF0, 0x07, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x00, 0x00, 0x00, 0x00, // Code for char W + 0x0C, 0x00, 0x00, 0x08, 0x20, 0x00, 0x0E, 0xE0, 0x80, 0x0F, 0xE0, 0xC3, 0x0F, 0x80, 0xFF, 0x01, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x80, 0xFF, 0x01, 0xE0, 0xE7, 0x0F, 0xE0, 0x81, 0x0F, 0x60, 0x00, 0x0E, 0x20, 0x00, 0x08, // Code for char X + 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0xE0, 0x01, 0x00, 0xE0, 0x07, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xFE, 0x0F, 0xC0, 0x1F, 0x00, 0xE0, 0x07, 0x00, 0xE0, 0x01, 0x00, 0x20, 0x00, 0x00, // Code for char Y + 0x0B, 0x00, 0x00, 0x00, 0x60, 0x00, 0x0E, 0x60, 0x80, 0x0F, 0x60, 0xE0, 0x0F, 0x60, 0xF0, 0x0F, 0x60, 0xFC, 0x0C, 0x60, 0x3F, 0x0C, 0xE0, 0x1F, 0x0C, 0xE0, 0x07, 0x0C, 0xE0, 0x01, 0x0C, 0xE0, 0x00, 0x0C, 0x00, 0x00, 0x00, // Code for char Z + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x18, 0x00, 0xC0, 0x18, 0x00, 0xC0, 0x18, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [ + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x07, 0x00, 0xF0, 0x3F, 0x00, 0x80, 0xFF, 0x01, 0x00, 0xFC, 0x0F, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, // Code for char BackSlash + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xC0, 0x18, 0x00, 0xC0, 0x18, 0x00, 0xC0, 0xF8, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ] + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0F, 0x00, 0x80, 0x07, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x80, 0x07, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, // Code for char ^ + 0x0C, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, // Code for char _ + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x38, 0x00, 0x00, 0x30, 0x00, 0x00, 0x70, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ` + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xC6, 0x07, 0x00, 0xE6, 0x0F, 0x00, 0x66, 0x0C, 0x00, 0x66, 0x0C, 0x00, 0x66, 0x0C, 0x00, 0x6E, 0x0C, 0x00, 0xFE, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, // Code for char a + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0xF8, 0xFF, 0x0F, 0xF8, 0xFF, 0x0F, 0x00, 0x0C, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x0E, 0x0E, 0x00, 0xFE, 0x07, 0x00, 0xFC, 0x07, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, // Code for char b + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xF8, 0x03, 0x00, 0xFC, 0x07, 0x00, 0x0E, 0x0E, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x00, // Code for char c + 0x0A, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0xFC, 0x07, 0x00, 0xFE, 0x07, 0x00, 0x0E, 0x0E, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x0C, 0xF8, 0xFF, 0x0F, 0xF8, 0xFF, 0x0F, 0xF8, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char d + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xF8, 0x07, 0x00, 0xFC, 0x07, 0x00, 0xCE, 0x0E, 0x00, 0xC6, 0x0C, 0x00, 0xC6, 0x0C, 0x00, 0xCE, 0x0C, 0x00, 0xFE, 0x0C, 0x00, 0xFC, 0x0E, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, // Code for char e + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0xC0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0x38, 0x06, 0x00, 0x18, 0x06, 0x00, 0x18, 0x06, 0x00, 0x18, 0x06, 0x00, 0x18, 0x06, 0x00, 0x18, 0x00, 0x00, // Code for char f + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xFC, 0xE3, 0x00, 0xFC, 0xC7, 0x00, 0x0E, 0xC7, 0x00, 0x06, 0xC6, 0x00, 0x06, 0xC6, 0x00, 0x06, 0xE6, 0x00, 0xFE, 0x7F, 0x00, 0xFE, 0x7F, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x00, // Code for char g + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0xF8, 0xFF, 0x0F, 0xF8, 0xFF, 0x0F, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, // Code for char h + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x30, 0x03, 0x00, 0x78, 0xFF, 0x03, 0x78, 0xFF, 0x07, 0x30, 0xFF, 0x0F, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, // Code for char i + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x60, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x30, 0x03, 0xC0, 0x78, 0xFF, 0xFF, 0x78, 0xFF, 0x7F, 0x30, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0xF8, 0xFF, 0x0F, 0xF8, 0xFF, 0x0F, 0x00, 0x60, 0x00, 0x00, 0xF8, 0x01, 0x00, 0xFE, 0x03, 0x00, 0x8E, 0x0F, 0x00, 0x06, 0x0F, 0x00, 0x02, 0x0C, 0x00, 0x00, 0x08, // Code for char k + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x0F, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, // Code for char l + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0x0F, 0x00, 0x06, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0x00, 0x00, // Code for char m + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0x0F, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, // Code for char n + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xFC, 0x07, 0x00, 0xFC, 0x07, 0x00, 0x0E, 0x0E, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x0E, 0x0E, 0x00, 0xFC, 0x07, 0x00, 0xFC, 0x07, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, // Code for char o + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0xFE, 0xFF, 0x00, 0xFE, 0xFF, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x0E, 0x0E, 0x00, 0xFC, 0x0F, 0x00, 0xFC, 0x07, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, // Code for char p + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xFC, 0x07, 0x00, 0xFC, 0x0F, 0x00, 0x0E, 0x0E, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0xFE, 0xFF, 0x00, 0xFE, 0xFF, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, // Code for char q + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0x0F, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, // Code for char r + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x38, 0x06, 0x00, 0x7C, 0x0E, 0x00, 0x7E, 0x0C, 0x00, 0x66, 0x0C, 0x00, 0xE6, 0x0C, 0x00, 0xE6, 0x0C, 0x00, 0xC6, 0x0C, 0x00, 0xC6, 0x0F, 0x00, 0xCE, 0x07, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, // Code for char s + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0xC0, 0xFF, 0x03, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0E, 0x00, 0x00, 0x00, // Code for char t + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0xFE, 0x07, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0x07, 0x00, 0x00, 0x00, // Code for char u + 0x0B, 0x00, 0x02, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFC, 0x03, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0E, 0x00, 0xC0, 0x0F, 0x00, 0xF8, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, // Code for char v + 0x0C, 0x00, 0x3E, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0xC0, 0x0F, 0x00, 0x80, 0x0F, 0x00, 0xF8, 0x03, 0x00, 0x78, 0x00, 0x00, 0xF8, 0x01, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x0F, 0x00, 0xC0, 0x0F, 0x00, 0xFE, 0x07, 0x00, 0x3E, 0x00, // Code for char w + 0x0C, 0x00, 0x02, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x0E, 0x0E, 0x00, 0x1E, 0x0F, 0x00, 0xFC, 0x03, 0x00, 0xF8, 0x01, 0x00, 0xF0, 0x01, 0x00, 0xF8, 0x03, 0x00, 0xBE, 0x07, 0x00, 0x0E, 0x0F, 0x00, 0x06, 0x0E, 0x00, 0x02, 0x08, // Code for char x + 0x0B, 0x00, 0x00, 0xE0, 0x00, 0x06, 0xE0, 0x00, 0x3E, 0xE0, 0x00, 0xFE, 0xE0, 0x00, 0xF8, 0xF3, 0x00, 0x80, 0x7F, 0x00, 0x00, 0x3F, 0x00, 0xF0, 0x0F, 0x00, 0xFE, 0x01, 0x00, 0x3E, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, // Code for char y + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, 0x00, 0x06, 0x0F, 0x00, 0xC6, 0x0F, 0x00, 0xF6, 0x0D, 0x00, 0xFE, 0x0C, 0x00, 0x3E, 0x0C, 0x00, 0x1E, 0x0C, 0x00, 0x0E, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char z + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0xE0, 0xFF, 0x7F, 0xF0, 0xDF, 0x7F, 0xF8, 0x8F, 0xFF, 0x18, 0x00, 0xC0, 0x18, 0x00, 0xC0, 0x18, 0x00, 0xC0, 0x18, 0x00, 0xC0, // Code for char { + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char | + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xC0, 0x18, 0x00, 0xC0, 0xF8, 0x8F, 0xFF, 0xF8, 0xDF, 0xFF, 0xF0, 0xFF, 0x7F, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char } + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x30, 0x00, // Code for char ~ + 0x06, 0xE0, 0xFF, 0x07, 0xE0, 0xFF, 0x07, 0x20, 0x00, 0x04, 0x20, 0x00, 0x04, 0xE0, 0xFF, 0x07, 0xE0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char € + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‚ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ƒ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char „ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char … + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char † + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‡ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ˆ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‰ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Š + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‹ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Œ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ž + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‘ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ’ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char “ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ” + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char • + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char – + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char — + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ˜ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ™ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char š + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char › + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char œ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ž + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ÿ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char   + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0xFF, 0x00, 0xCE, 0xFF, 0x00, 0xCE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¡ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFE, 0x03, 0x00, 0xFE, 0x03, 0x00, 0x07, 0x07, 0xE0, 0x03, 0x3E, 0xE0, 0x03, 0x3E, 0xE0, 0x03, 0x3E, 0x00, 0x03, 0x06, 0x00, 0x03, 0x06, 0x00, 0x03, 0x06, 0x00, 0x00, 0x00, // Code for char ¢ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x0C, 0x00, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0x30, 0x0C, 0x60, 0x30, 0x0C, 0x60, 0x30, 0x0C, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x00, // Code for char £ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x80, 0xFF, 0x03, 0x00, 0xFF, 0x01, 0x00, 0xC7, 0x01, 0x00, 0x83, 0x01, 0x00, 0x83, 0x01, 0x00, 0xC7, 0x01, 0x00, 0xFF, 0x01, 0x80, 0xFF, 0x03, 0x00, 0x83, 0x01, 0x00, 0x00, 0x00, // Code for char ¤ + 0x0C, 0x20, 0x00, 0x00, 0xE0, 0xB0, 0x01, 0xE0, 0xB3, 0x01, 0xC0, 0xBF, 0x01, 0x00, 0xBE, 0x01, 0x00, 0xF8, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0xFE, 0x0F, 0xC0, 0xBF, 0x01, 0xE0, 0xB7, 0x01, 0xE0, 0xB1, 0x01, 0x20, 0x00, 0x00, // Code for char ¥ + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x8F, 0xFF, 0xF8, 0x8F, 0xFF, 0xF8, 0x8F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¦ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x10, 0x80, 0xFB, 0x39, 0xC0, 0xFF, 0x31, 0xE0, 0x87, 0x33, 0x60, 0x86, 0x33, 0x60, 0x0E, 0x33, 0x60, 0x0E, 0x3F, 0x60, 0xFC, 0x1F, 0xE0, 0x7C, 0x0E, 0x40, 0x38, 0x00, 0x00, 0x00, 0x00, // Code for char § + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¨ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x0C, 0x06, 0x00, 0xF4, 0x05, 0x00, 0x1A, 0x0B, 0x00, 0x0A, 0x0A, 0x00, 0x0A, 0x0A, 0x00, 0x02, 0x0A, 0x00, 0x04, 0x04, 0x00, 0x0C, 0x06, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, // Code for char © + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x60, 0x1E, 0x00, 0x60, 0x1B, 0x00, 0x60, 0x19, 0x00, 0x60, 0x19, 0x00, 0xE0, 0x1F, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ª + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x9C, 0x03, 0x00, 0x0E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x9C, 0x03, 0x00, 0x0E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char « + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0xF8, 0x03, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¬ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ­ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x0C, 0x06, 0x00, 0x04, 0x04, 0x00, 0xFA, 0x09, 0x00, 0x4A, 0x08, 0x00, 0xCA, 0x08, 0x00, 0xFA, 0x09, 0x00, 0x04, 0x05, 0x00, 0x0C, 0x06, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, // Code for char ® + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¯ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0xF0, 0x03, 0x00, 0x18, 0x03, 0x00, 0x18, 0x03, 0x00, 0x18, 0x03, 0x00, 0xF0, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ° + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x80, 0xFF, 0x0D, 0x80, 0xFF, 0x0D, 0x80, 0xFF, 0x0D, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, // Code for char ± + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x30, 0x00, 0xE0, 0x3C, 0x00, 0x60, 0x3C, 0x00, 0x60, 0x36, 0x00, 0xE0, 0x33, 0x00, 0xC0, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ² + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x38, 0x00, 0xE0, 0x30, 0x00, 0x60, 0x33, 0x00, 0x60, 0x33, 0x00, 0xE0, 0x3F, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ³ + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x70, 0x00, 0x00, 0x30, 0x00, 0x00, 0x38, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ´ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0xFE, 0xFF, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0x07, 0x00, 0x00, 0x00, // Code for char µ + 0x0C, 0x00, 0x0F, 0x00, 0xC0, 0x1F, 0x00, 0xC0, 0x3F, 0x00, 0xE0, 0x3F, 0x00, 0xE0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, // Code for char ¶ + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char · + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xD0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¸ + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x31, 0x00, 0xC0, 0x30, 0x00, 0xE0, 0x3F, 0x00, 0xE0, 0x3F, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¹ + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xC0, 0x0F, 0x00, 0x60, 0x18, 0x00, 0x60, 0x18, 0x00, 0x60, 0x18, 0x00, 0xC0, 0x0F, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char º + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x9E, 0x07, 0x00, 0xFC, 0x03, 0x00, 0xF0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x04, 0x02, 0x00, 0x9E, 0x07, 0x00, 0xFC, 0x03, 0x00, 0xF0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, // Code for char » + 0x0C, 0x80, 0x00, 0x00, 0x40, 0x00, 0x08, 0xE0, 0x07, 0x0E, 0xE0, 0x87, 0x07, 0x00, 0xE0, 0x01, 0x00, 0x78, 0x00, 0x00, 0x3C, 0x06, 0x00, 0x8F, 0x07, 0xC0, 0xC3, 0x06, 0xE0, 0xC0, 0x0F, 0x20, 0xC0, 0x0F, 0x00, 0x00, 0x06, // Code for char ¼ + 0x0C, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x08, 0xE0, 0x07, 0x0E, 0xE0, 0x87, 0x07, 0x00, 0xE0, 0x01, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x80, 0x87, 0x0C, 0xE0, 0xC1, 0x0C, 0x60, 0xC0, 0x0E, 0x00, 0xC0, 0x0B, 0x00, 0x80, 0x0B, // Code for char ½ + 0x0C, 0x20, 0x04, 0x00, 0x20, 0x04, 0x08, 0xA0, 0x04, 0x0E, 0xA0, 0x04, 0x0F, 0xE0, 0xC7, 0x03, 0xC0, 0xF3, 0x00, 0x00, 0x3C, 0x06, 0x00, 0x0F, 0x07, 0xC0, 0xC3, 0x06, 0xE0, 0xC0, 0x0F, 0x20, 0xC0, 0x0F, 0x00, 0x00, 0x06, // Code for char ¾ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFF, 0x00, 0x8E, 0xC7, 0x00, 0xCE, 0xC3, 0x00, 0xCE, 0xC1, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¿ + 0x0C, 0x00, 0x00, 0x0C, 0x00, 0xC0, 0x0F, 0x00, 0xF8, 0x0F, 0x02, 0xFF, 0x07, 0xE7, 0xFF, 0x01, 0xE6, 0x83, 0x01, 0xEE, 0x83, 0x01, 0xE4, 0xFF, 0x01, 0x80, 0xFF, 0x07, 0x00, 0xFC, 0x0F, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0C, // Code for char À + 0x0C, 0x00, 0x00, 0x0C, 0x00, 0xC0, 0x0F, 0x00, 0xF8, 0x0F, 0x04, 0xFF, 0x07, 0xEE, 0xFF, 0x01, 0xE6, 0x83, 0x01, 0xE7, 0x83, 0x01, 0xE2, 0xFF, 0x01, 0x80, 0xFF, 0x07, 0x00, 0xFC, 0x0F, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0C, // Code for char Á + 0x0C, 0x00, 0x00, 0x0C, 0x00, 0xC0, 0x0F, 0x00, 0xF8, 0x0F, 0x0C, 0xFF, 0x07, 0xE6, 0xFF, 0x01, 0xE3, 0x83, 0x01, 0xE3, 0x83, 0x01, 0xE6, 0xFF, 0x01, 0x8C, 0xFF, 0x07, 0x00, 0xFC, 0x0F, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0C, // Code for char  + 0x0C, 0x00, 0x00, 0x0C, 0x00, 0xC0, 0x0F, 0x04, 0xF8, 0x0F, 0x0E, 0xFF, 0x07, 0xE6, 0xFF, 0x01, 0xE6, 0x83, 0x01, 0xEC, 0x83, 0x01, 0xEC, 0xFF, 0x01, 0x8C, 0xFF, 0x07, 0x06, 0xFC, 0x0F, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0C, // Code for char à + 0x0C, 0x00, 0x00, 0x0C, 0x00, 0xC0, 0x0F, 0x00, 0xF8, 0x0F, 0x07, 0xFF, 0x07, 0xE7, 0xFF, 0x01, 0xE7, 0x83, 0x01, 0xE0, 0x83, 0x01, 0xE7, 0xFF, 0x01, 0x87, 0xFF, 0x07, 0x07, 0xFC, 0x0F, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0C, // Code for char Ä + 0x0C, 0x00, 0x00, 0x0C, 0x00, 0xC0, 0x0F, 0x00, 0xF8, 0x0F, 0x08, 0xFF, 0x07, 0xFC, 0xFF, 0x01, 0xF6, 0x87, 0x01, 0xF6, 0x87, 0x01, 0xFE, 0xFF, 0x01, 0x08, 0xFF, 0x07, 0x00, 0xF8, 0x0F, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x0C, // Code for char Å + 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x80, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xFE, 0x03, 0xC0, 0xBF, 0x01, 0xE0, 0x81, 0x01, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x60, 0x18, 0x0C, 0x60, 0x18, 0x0C, 0x60, 0x00, 0x0C, // Code for char Æ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0x01, 0xCF, 0xE0, 0x00, 0xCE, 0x60, 0x00, 0xDC, 0x60, 0x00, 0xFC, 0x60, 0x00, 0x6C, 0xE0, 0x00, 0x0E, 0x40, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char Ç + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE2, 0xFF, 0x0F, 0x67, 0x18, 0x0C, 0x66, 0x18, 0x0C, 0x6E, 0x18, 0x0C, 0x64, 0x18, 0x0C, 0x60, 0x18, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, // Code for char È + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE4, 0xFF, 0x0F, 0x6E, 0x18, 0x0C, 0x66, 0x18, 0x0C, 0x67, 0x18, 0x0C, 0x62, 0x18, 0x0C, 0x60, 0x18, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, // Code for char É + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xEC, 0xFF, 0x0F, 0xE6, 0xFF, 0x0F, 0x63, 0x18, 0x0C, 0x63, 0x18, 0x0C, 0x66, 0x18, 0x0C, 0x6C, 0x18, 0x0C, 0x60, 0x18, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, // Code for char Ê + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE7, 0xFF, 0x0F, 0xE7, 0xFF, 0x0F, 0x67, 0x18, 0x0C, 0x60, 0x18, 0x0C, 0x67, 0x18, 0x0C, 0x67, 0x18, 0x0C, 0x67, 0x18, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, // Code for char Ë + 0x0A, 0x00, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x62, 0x00, 0x0C, 0xE7, 0xFF, 0x0F, 0xE6, 0xFF, 0x0F, 0xEE, 0xFF, 0x0F, 0x64, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ì + 0x0A, 0x00, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x64, 0x00, 0x0C, 0xEE, 0xFF, 0x0F, 0xE6, 0xFF, 0x0F, 0xE7, 0xFF, 0x0F, 0x62, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Í + 0x0A, 0x00, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x6C, 0x00, 0x0C, 0x66, 0x00, 0x0C, 0xE3, 0xFF, 0x0F, 0xE3, 0xFF, 0x0F, 0xE6, 0xFF, 0x0F, 0x6C, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Î + 0x0A, 0x00, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x67, 0x00, 0x0C, 0x67, 0x00, 0x0C, 0xE7, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE7, 0xFF, 0x0F, 0x67, 0x00, 0x0C, 0x67, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ï + 0x0B, 0x00, 0x18, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x60, 0x18, 0x0C, 0x60, 0x18, 0x0C, 0xE0, 0x00, 0x0E, 0xC0, 0x01, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, // Code for char Ð + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE4, 0xFF, 0x0F, 0xEE, 0xFF, 0x0F, 0xC6, 0x07, 0x00, 0x06, 0x1F, 0x00, 0x0C, 0x78, 0x00, 0x0C, 0xE0, 0x03, 0xEC, 0xFF, 0x0F, 0xE6, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, // Code for char Ñ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x80, 0xFF, 0x03, 0xC2, 0xFF, 0x07, 0xE7, 0x00, 0x0E, 0x66, 0x00, 0x0C, 0x6E, 0x00, 0x0C, 0xE4, 0x00, 0x0E, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, // Code for char Ò + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x80, 0xFF, 0x03, 0xC4, 0xFF, 0x07, 0xEE, 0x00, 0x0E, 0x66, 0x00, 0x0C, 0x67, 0x00, 0x0C, 0xE2, 0x00, 0x0E, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, // Code for char Ó + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x80, 0xFF, 0x03, 0xCC, 0xFF, 0x07, 0xE6, 0x00, 0x0E, 0x63, 0x00, 0x0C, 0x63, 0x00, 0x0C, 0xE6, 0x00, 0x0E, 0xCC, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, // Code for char Ô + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x84, 0xFF, 0x03, 0xCE, 0xFF, 0x07, 0xE6, 0x00, 0x0E, 0x66, 0x00, 0x0C, 0x6C, 0x00, 0x0C, 0xEC, 0x00, 0x0E, 0xCC, 0xFF, 0x07, 0x86, 0xFF, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, // Code for char Õ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x80, 0xFF, 0x03, 0xC7, 0xFF, 0x07, 0xE7, 0x00, 0x0E, 0x67, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0xE7, 0x00, 0x0E, 0xC7, 0xFF, 0x07, 0x87, 0xFF, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, // Code for char Ö + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x8E, 0x03, 0x00, 0xDC, 0x03, 0x00, 0xF8, 0x01, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF8, 0x01, 0x00, 0xDC, 0x03, 0x00, 0x8E, 0x03, 0x00, 0x04, 0x01, 0x00, 0x00, 0x00, // Code for char × + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x09, 0x80, 0xFF, 0x1F, 0xC0, 0xFF, 0x0F, 0xE0, 0xE0, 0x0F, 0x60, 0xF8, 0x0C, 0x60, 0x3F, 0x0C, 0xE0, 0x07, 0x0E, 0xF0, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x20, 0xFF, 0x00, 0x00, 0x00, 0x00, // Code for char Ø + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0x07, 0xE2, 0xFF, 0x0F, 0x07, 0x00, 0x0E, 0x06, 0x00, 0x0C, 0x0E, 0x00, 0x0C, 0x04, 0x00, 0x0E, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x07, 0xE0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Ù + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0x07, 0xE0, 0xFF, 0x0F, 0x04, 0x00, 0x0E, 0x0E, 0x00, 0x0C, 0x06, 0x00, 0x0C, 0x07, 0x00, 0x0E, 0xE2, 0xFF, 0x0F, 0xE0, 0xFF, 0x07, 0xE0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Ú + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0x07, 0xEC, 0xFF, 0x0F, 0x06, 0x00, 0x0E, 0x03, 0x00, 0x0C, 0x03, 0x00, 0x0C, 0x06, 0x00, 0x0E, 0xEC, 0xFF, 0x0F, 0xE0, 0xFF, 0x07, 0xE0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Û + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0x07, 0xE7, 0xFF, 0x0F, 0x07, 0x00, 0x0E, 0x07, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x07, 0x00, 0x0E, 0xE7, 0xFF, 0x0F, 0xE7, 0xFF, 0x07, 0xE0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Ü + 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0xE0, 0x01, 0x00, 0xE0, 0x07, 0x00, 0xC4, 0x1F, 0x00, 0x0E, 0xFE, 0x0F, 0x06, 0xF0, 0x0F, 0x07, 0xFE, 0x0F, 0xC2, 0x1F, 0x00, 0xE0, 0x07, 0x00, 0xE0, 0x01, 0x00, 0x20, 0x00, 0x00, // Code for char Ý + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x80, 0x81, 0x01, 0x80, 0x81, 0x01, 0x80, 0x81, 0x01, 0x80, 0xC3, 0x01, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, // Code for char Þ + 0x0C, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF8, 0xFF, 0x0F, 0x38, 0x00, 0x00, 0x18, 0x1C, 0x0E, 0x18, 0x3F, 0x0C, 0xF8, 0x7F, 0x0C, 0xF0, 0xF3, 0x0C, 0xE0, 0xE1, 0x0F, 0x00, 0xC0, 0x07, 0x00, 0x80, 0x03, // Code for char ß + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xC6, 0x07, 0x00, 0xE6, 0x0F, 0x10, 0x66, 0x0C, 0x38, 0x66, 0x0C, 0x30, 0x66, 0x0C, 0x70, 0x6E, 0x0C, 0x20, 0xFE, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, // Code for char à + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xC6, 0x07, 0x00, 0xE6, 0x0F, 0x20, 0x66, 0x0C, 0x70, 0x66, 0x0C, 0x30, 0x66, 0x0C, 0x38, 0x6E, 0x0C, 0x10, 0xFE, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, // Code for char á + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xC6, 0x07, 0xC0, 0xE6, 0x0F, 0x60, 0x66, 0x0C, 0x30, 0x66, 0x0C, 0x30, 0x66, 0x0C, 0x60, 0x6E, 0x0C, 0xC0, 0xFE, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, // Code for char â + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x20, 0xC6, 0x07, 0x70, 0xE6, 0x0F, 0x30, 0x66, 0x0C, 0x30, 0x66, 0x0C, 0x60, 0x66, 0x0C, 0x60, 0x6E, 0x0C, 0x60, 0xFE, 0x0F, 0x30, 0xFC, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, // Code for char ã + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xC6, 0x07, 0x38, 0xE6, 0x0F, 0x38, 0x66, 0x0C, 0x38, 0x66, 0x0C, 0x00, 0x66, 0x0C, 0x38, 0x6E, 0x0C, 0x38, 0xFE, 0x0F, 0x38, 0xFC, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, // Code for char ä + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xC6, 0x07, 0x00, 0xE6, 0x0F, 0x30, 0x66, 0x0C, 0x48, 0x66, 0x0C, 0x48, 0x66, 0x0C, 0x30, 0x6E, 0x0C, 0x00, 0xFE, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, // Code for char å + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0xE6, 0x0F, 0x00, 0xE6, 0x0F, 0x00, 0x66, 0x0C, 0x00, 0x7E, 0x0C, 0x00, 0xFC, 0x07, 0x00, 0x7E, 0x0E, 0x00, 0x66, 0x0C, 0x00, 0x66, 0x0C, 0x00, 0x78, 0x0C, 0x00, 0x00, 0x00, // Code for char æ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xF8, 0x03, 0x00, 0xFC, 0x07, 0x00, 0x0E, 0xCE, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xDC, 0x00, 0x06, 0xFC, 0x00, 0x06, 0x6C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x00, // Code for char ç + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xF8, 0x07, 0x10, 0xFC, 0x07, 0x38, 0xCE, 0x0E, 0x30, 0xC6, 0x0C, 0x70, 0xC6, 0x0C, 0x20, 0xCE, 0x0C, 0x00, 0xFE, 0x0C, 0x00, 0xFC, 0x0E, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, // Code for char è + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xF8, 0x07, 0x00, 0xFC, 0x07, 0x20, 0xCE, 0x0E, 0x70, 0xC6, 0x0C, 0x30, 0xC6, 0x0C, 0x38, 0xCE, 0x0C, 0x10, 0xFE, 0x0C, 0x00, 0xFC, 0x0E, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, // Code for char é + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xF8, 0x07, 0xC0, 0xFC, 0x07, 0x60, 0xCE, 0x0E, 0x30, 0xC6, 0x0C, 0x30, 0xC6, 0x0C, 0x60, 0xCE, 0x0C, 0xC0, 0xFE, 0x0C, 0x00, 0xFC, 0x0E, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, // Code for char ê + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xF8, 0x07, 0x38, 0xFC, 0x07, 0x38, 0xCE, 0x0E, 0x38, 0xC6, 0x0C, 0x00, 0xC6, 0x0C, 0x38, 0xCE, 0x0C, 0x38, 0xFE, 0x0C, 0x38, 0xFC, 0x0E, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, // Code for char ë + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x10, 0x06, 0x00, 0x38, 0xFE, 0x03, 0x30, 0xFE, 0x07, 0x70, 0xFE, 0x0F, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char ì + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x20, 0x06, 0x00, 0x70, 0xFE, 0x03, 0x30, 0xFE, 0x07, 0x38, 0xFE, 0x0F, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char í + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0xC0, 0x06, 0x00, 0x60, 0xFE, 0x03, 0x30, 0xFE, 0x07, 0x30, 0xFE, 0x0F, 0x60, 0x00, 0x0C, 0xC0, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char î + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x38, 0x06, 0x00, 0x38, 0x06, 0x00, 0x38, 0xFE, 0x03, 0x00, 0xFE, 0x07, 0x38, 0xFE, 0x0F, 0x38, 0x00, 0x0C, 0x38, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char ï + 0x0C, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xF8, 0x07, 0x00, 0xFC, 0x07, 0x90, 0x1C, 0x0E, 0xF8, 0x0D, 0x0C, 0xF8, 0x0C, 0x0C, 0xF0, 0x0D, 0x0E, 0xE0, 0xFF, 0x07, 0xE0, 0xFF, 0x07, 0x60, 0xFC, 0x01, 0x20, 0x00, 0x00, // Code for char ð + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x20, 0xFE, 0x0F, 0x70, 0xFE, 0x0F, 0x30, 0x06, 0x00, 0x30, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0xFE, 0x0F, 0x60, 0xFC, 0x0F, 0x30, 0xF8, 0x0F, 0x00, 0x00, 0x00, // Code for char ñ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xFC, 0x07, 0x10, 0xFC, 0x07, 0x38, 0x0E, 0x0E, 0x30, 0x06, 0x0C, 0x70, 0x06, 0x0C, 0x20, 0x0E, 0x0E, 0x00, 0xFC, 0x07, 0x00, 0xFC, 0x07, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, // Code for char ò + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xFC, 0x07, 0x00, 0xFC, 0x07, 0x20, 0x0E, 0x0E, 0x70, 0x06, 0x0C, 0x30, 0x06, 0x0C, 0x38, 0x0E, 0x0E, 0x10, 0xFC, 0x07, 0x00, 0xFC, 0x07, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, // Code for char ó + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xFC, 0x07, 0xC0, 0xFC, 0x07, 0x60, 0x0E, 0x0E, 0x30, 0x06, 0x0C, 0x30, 0x06, 0x0C, 0x60, 0x0E, 0x0E, 0xC0, 0xFC, 0x07, 0x00, 0xFC, 0x07, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, // Code for char ô + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x20, 0xFC, 0x07, 0x70, 0xFC, 0x07, 0x30, 0x0E, 0x0E, 0x30, 0x06, 0x0C, 0x60, 0x06, 0x0C, 0x60, 0x0E, 0x0E, 0x60, 0xFC, 0x07, 0x30, 0xFC, 0x07, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, // Code for char õ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xFC, 0x07, 0x38, 0xFC, 0x07, 0x38, 0x0E, 0x0E, 0x38, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x38, 0x0E, 0x0E, 0x38, 0xFC, 0x07, 0x38, 0xFC, 0x07, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, // Code for char ö + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x67, 0x0E, 0x00, 0x67, 0x0E, 0x00, 0x67, 0x0E, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, // Code for char ÷ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x09, 0x00, 0xFC, 0x0F, 0x00, 0xFC, 0x07, 0x00, 0x8E, 0x0F, 0x00, 0xC6, 0x0D, 0x00, 0x76, 0x0C, 0x00, 0x3E, 0x0E, 0x00, 0xFC, 0x07, 0x00, 0xFE, 0x07, 0x00, 0xF2, 0x01, 0x00, 0x00, 0x00, // Code for char ø + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0xFE, 0x07, 0x10, 0xFE, 0x0F, 0x38, 0x00, 0x0E, 0x30, 0x00, 0x0C, 0x70, 0x00, 0x0C, 0x20, 0x00, 0x0C, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0x07, 0x00, 0x00, 0x00, // Code for char ù + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0xFE, 0x07, 0x00, 0xFE, 0x0F, 0x20, 0x00, 0x0E, 0x70, 0x00, 0x0C, 0x30, 0x00, 0x0C, 0x38, 0x00, 0x0C, 0x10, 0xFE, 0x0F, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0x07, 0x00, 0x00, 0x00, // Code for char ú + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0xFE, 0x07, 0xC0, 0xFE, 0x0F, 0x60, 0x00, 0x0E, 0x30, 0x00, 0x0C, 0x30, 0x00, 0x0C, 0x60, 0x00, 0x0C, 0xC0, 0xFE, 0x0F, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0x07, 0x00, 0x00, 0x00, // Code for char û + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0xFE, 0x07, 0x38, 0xFE, 0x0F, 0x38, 0x00, 0x0E, 0x38, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x38, 0x00, 0x0C, 0x38, 0xFE, 0x0F, 0x38, 0xFE, 0x0F, 0x00, 0xFE, 0x07, 0x00, 0x00, 0x00, // Code for char ü + 0x0B, 0x00, 0x00, 0xE0, 0x00, 0x06, 0xE0, 0x00, 0x3E, 0xE0, 0x20, 0xFE, 0xE0, 0x70, 0xF8, 0xF3, 0x30, 0x80, 0x7F, 0x38, 0x00, 0x3F, 0x10, 0xF0, 0x0F, 0x00, 0xFE, 0x01, 0x00, 0x3E, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, // Code for char ý + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x00, 0x03, 0x0C, 0x00, 0x03, 0x0C, 0x00, 0x03, 0x0C, 0x00, 0x07, 0x0E, 0x00, 0xFE, 0x0F, 0x00, 0xFC, 0x07, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x00, // Code for char þ + 0x0B, 0x00, 0x00, 0xE0, 0x00, 0x06, 0xE0, 0x38, 0x3E, 0xE0, 0x38, 0xFE, 0xE0, 0x38, 0xF8, 0xF3, 0x00, 0x80, 0x7F, 0x38, 0x00, 0x3F, 0x38, 0xF0, 0x0F, 0x38, 0xFE, 0x01, 0x00, 0x3E, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00 // Code for char ÿ + }; + diff --git a/ili9341/fonts/Unispace12x24.c b/ili9341/fonts/Unispace12x24.c new file mode 100644 index 0000000..a439882 --- /dev/null +++ b/ili9341/fonts/Unispace12x24.c @@ -0,0 +1,106 @@ +//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0 +//MikroElektronika 2011 +//http://www.mikroe.com + +//GLCD FontName : Unispace12x24 +//GLCD FontSize : 12 x 24 (Fixed Width) + +const unsigned short Unispace12x24[] = { + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x07, 0xF8, 0x7F, 0x07, 0xF8, 0x7F, 0x07, 0xF8, 0x7F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char " + 0x0B, 0x00, 0x00, 0x00, 0x80, 0x61, 0x00, 0x80, 0x61, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x80, 0x61, 0x00, 0x80, 0x61, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x80, 0x61, 0x00, 0x80, 0x61, 0x00, 0x00, 0x00, 0x00, // Code for char # + 0x0C, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x01, 0xF0, 0x0F, 0x01, 0x70, 0x0E, 0x01, 0x30, 0x0C, 0x01, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x30, 0x0C, 0x01, 0x30, 0x0C, 0x01, 0x30, 0xFC, 0x01, 0x30, 0xFC, 0x01, 0x00, 0x70, 0x00, // Code for char $ + 0x0C, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x06, 0xF8, 0xC3, 0x07, 0xE0, 0xF8, 0x00, 0x80, 0x1F, 0x00, 0xF0, 0xF1, 0x07, 0x38, 0x30, 0x04, 0x00, 0x10, 0x04, 0x00, 0xF0, 0x07, 0x00, 0xE0, 0x03, // Code for char % + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xF9, 0x01, 0xF8, 0xFF, 0x03, 0xF8, 0xFF, 0x07, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0xFE, 0x07, 0x18, 0xFE, 0x07, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, // Code for char & + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x3F, 0xFE, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ( + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x07, 0x00, 0xE0, 0xFE, 0xFF, 0x7F, 0xFC, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ) + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0xB8, 0x01, 0x00, 0xF0, 0x07, 0x00, 0xE0, 0x07, 0x00, 0xF8, 0x01, 0x00, 0xD8, 0x03, 0x00, 0x60, 0x07, 0x00, 0x60, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char * + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0xC0, 0x7F, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, // Code for char + + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char , + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, // Code for char - + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char . + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x00, 0xC0, 0x03, 0x00, 0xF0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x0F, 0x00, 0xC0, 0x03, 0x00, 0xE0, 0x01, 0x00, 0x78, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char / + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0xE0, 0x07, 0x18, 0xFC, 0x06, 0x98, 0x1F, 0x06, 0xF8, 0x03, 0x06, 0xF8, 0x00, 0x07, 0xF8, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char 0 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char 1 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x18, 0xFC, 0x07, 0x18, 0xFC, 0x07, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0xF8, 0x0F, 0x06, 0xF8, 0x0F, 0x06, 0xF0, 0x07, 0x06, 0x00, 0x00, 0x00, // Code for char 2 + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0xF8, 0xFF, 0x07, 0xF0, 0xFF, 0x07, 0xE0, 0xF3, 0x03, 0x00, 0x00, 0x00, // Code for char 3 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xDF, 0x00, 0xC0, 0xC7, 0x00, 0xF0, 0xC1, 0x00, 0x78, 0xC0, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, // Code for char 4 + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x06, 0xF8, 0x07, 0x06, 0xF8, 0x07, 0x06, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0xFE, 0x07, 0x18, 0xFE, 0x07, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, // Code for char 5 + 0x0B, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x03, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0xFE, 0x07, 0x00, 0xFE, 0x07, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, // Code for char 6 + 0x0C, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x04, 0x18, 0x00, 0x07, 0x18, 0xE0, 0x07, 0x18, 0xF8, 0x03, 0x18, 0xFF, 0x00, 0xD8, 0x1F, 0x00, 0xF8, 0x07, 0x00, 0xF8, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0x00, 0x00, // Code for char 7 + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFB, 0x03, 0xF0, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF0, 0xFB, 0x03, 0x00, 0x00, 0x00, // Code for char 8 + 0x0B, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0xF8, 0x0F, 0x06, 0xF8, 0x0F, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char 9 + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x07, 0x00, 0x0E, 0x07, 0x00, 0x0E, 0x07, 0x00, 0x0E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char : + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x7E, 0x00, 0x0E, 0x7E, 0x00, 0x0E, 0x7E, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ; + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x39, 0x00, 0xC0, 0x71, 0x00, 0xE0, 0xE0, 0x00, 0x70, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char < + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x19, 0x00, 0x80, 0x19, 0x00, 0x80, 0x19, 0x00, 0x80, 0x19, 0x00, 0x80, 0x19, 0x00, 0x80, 0x19, 0x00, 0x80, 0x19, 0x00, 0x80, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char = + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xC0, 0x01, 0x60, 0xE0, 0x00, 0xC0, 0x70, 0x00, 0x80, 0x31, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char > + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x30, 0x07, 0x18, 0x7C, 0x07, 0x18, 0x1C, 0x07, 0x18, 0x0C, 0x07, 0x18, 0x0C, 0x00, 0xF8, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, // Code for char ? + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x3F, 0xC0, 0xFF, 0x3F, 0xC0, 0x00, 0x30, 0xC0, 0xF8, 0x31, 0xC0, 0xFC, 0x33, 0xC0, 0x0C, 0x33, 0xC0, 0xFC, 0x33, 0xC0, 0x00, 0x33, 0xC0, 0xFF, 0x33, 0xC0, 0xFF, 0x33, 0x00, 0x00, 0x00, // Code for char @ + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xFC, 0x07, 0xC0, 0xFF, 0x07, 0xF8, 0xFF, 0x00, 0xF8, 0xC0, 0x00, 0x78, 0xC0, 0x00, 0xF8, 0xDF, 0x00, 0xE0, 0xFF, 0x07, 0x00, 0xFE, 0x07, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x04, // Code for char A + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xE0, 0xF3, 0x03, 0x00, 0x00, 0x00, // Code for char B + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x00, 0xF0, 0xFF, 0x03, 0xF8, 0xFF, 0x07, 0x38, 0x00, 0x07, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char C + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char D + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char E + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0xF0, 0xFF, 0x03, 0xF8, 0xFF, 0x07, 0x38, 0x00, 0x07, 0x18, 0x00, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0xFC, 0x07, 0x18, 0xFC, 0x07, 0x18, 0xFC, 0x07, 0x00, 0x00, 0x00, // Code for char G + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char H + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char I + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x03, 0xF8, 0xFF, 0x01, 0x00, 0x00, 0x00, // Code for char J + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x0E, 0x00, 0x80, 0x3F, 0x00, 0xC0, 0xFF, 0x00, 0xF0, 0xF1, 0x03, 0x78, 0xE0, 0x07, 0x38, 0x80, 0x07, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char K + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char L + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0x07, 0x00, 0xC0, 0xFF, 0x01, 0x00, 0xF0, 0x07, 0x00, 0xE0, 0x07, 0x80, 0xFF, 0x03, 0xF8, 0x0F, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char M + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0x01, 0x00, 0xF0, 0x07, 0x00, 0x80, 0x3F, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xF0, 0x03, 0x00, 0xC0, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char N + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char O + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0xF8, 0x1F, 0x00, 0xF8, 0x1F, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, // Code for char P + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x1E, 0x18, 0x00, 0x1E, 0xF8, 0xFF, 0x17, 0xF8, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Q + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF0, 0xF3, 0x07, 0x00, 0x00, 0x00, // Code for char R + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x06, 0xF0, 0x07, 0x06, 0xF8, 0x0F, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0xFC, 0x07, 0x18, 0xFC, 0x07, 0x18, 0xF8, 0x03, 0x00, 0x00, 0x00, // Code for char S + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x01, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char U + 0x0C, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0xF8, 0xFF, 0x00, 0x00, 0xFF, 0x07, 0x00, 0xC0, 0x07, 0x00, 0x80, 0x07, 0x00, 0xFE, 0x07, 0xF0, 0xFF, 0x00, 0xF8, 0x0F, 0x00, 0xF8, 0x00, 0x00, 0x08, 0x00, 0x00, // Code for char V + 0x0C, 0x38, 0x00, 0x00, 0xF8, 0xFF, 0x00, 0xF8, 0xFF, 0x07, 0x00, 0xFE, 0x07, 0x00, 0xE0, 0x07, 0x80, 0xFF, 0x00, 0x80, 0x3F, 0x00, 0x00, 0xF8, 0x07, 0x00, 0xE0, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x03, 0xF8, 0x01, 0x00, // Code for char W + 0x0C, 0x00, 0x00, 0x00, 0x18, 0x00, 0x06, 0x78, 0x80, 0x07, 0xF8, 0xE1, 0x07, 0xF0, 0xFF, 0x01, 0x80, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0xC0, 0xFF, 0x01, 0xF0, 0xF3, 0x07, 0xF8, 0xC0, 0x07, 0x38, 0x00, 0x07, 0x08, 0x00, 0x04, // Code for char X + 0x0C, 0x08, 0x00, 0x00, 0x38, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x03, 0x00, 0xE0, 0xFF, 0x07, 0x00, 0xFF, 0x07, 0x00, 0xFE, 0x07, 0xC0, 0xFF, 0x07, 0xF8, 0x07, 0x00, 0xF8, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0x00, 0x00, // Code for char Y + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x06, 0x18, 0x80, 0x07, 0x18, 0xE0, 0x07, 0x18, 0xF8, 0x07, 0x18, 0x7E, 0x06, 0x18, 0x3F, 0x06, 0xD8, 0x0F, 0x06, 0xF8, 0x03, 0x06, 0xF8, 0x00, 0x06, 0x38, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char Z + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [ + 0x0B, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x38, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char BackSlash + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ] + 0x0C, 0x00, 0x02, 0x00, 0x00, 0x03, 0x00, 0x80, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x38, 0x00, 0x00, 0x18, 0x00, 0x00, 0x70, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x02, 0x00, // Code for char ^ + 0x0C, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, // Code for char _ + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ` + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0xC0, 0xF8, 0x07, 0xC0, 0xF8, 0x07, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char a + 0x0B, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char b + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char c + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char d + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x30, 0x06, 0xC0, 0x30, 0x06, 0xC0, 0x30, 0x06, 0xC0, 0x30, 0x06, 0xC0, 0x39, 0x06, 0xC0, 0x3F, 0x06, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, // Code for char e + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char f + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0xC7, 0xC0, 0x00, 0xC6, 0xC0, 0x00, 0xC6, 0xC0, 0x00, 0xC6, 0xC0, 0x00, 0xC6, 0xC0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0xFF, 0x7F, 0x00, 0x00, 0x00, // Code for char g + 0x0B, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char h + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char i + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xE0, 0xCC, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0xCC, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j + 0x0C, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x7C, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xEF, 0x01, 0xC0, 0xC7, 0x03, 0xC0, 0x81, 0x07, 0xC0, 0x00, 0x06, 0x40, 0x00, 0x04, 0x00, 0x00, 0x04, // Code for char k + 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char l + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char m + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char n + 0x0C, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0xFE, 0x00, // Code for char o + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char p + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0x00, 0x00, 0x00, // Code for char q + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x01, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char r + 0x0C, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x06, 0xC0, 0x1F, 0x06, 0xC0, 0x1D, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0xF8, 0x07, 0xC0, 0xF0, 0x03, 0x00, 0xC0, 0x00, // Code for char s + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char t + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char u + 0x0C, 0x40, 0x00, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x1F, 0x00, 0xC0, 0xFF, 0x01, 0x00, 0xFC, 0x07, 0x00, 0xC0, 0x07, 0x00, 0x80, 0x07, 0x00, 0xF8, 0x07, 0x80, 0xFF, 0x03, 0xC0, 0x3F, 0x00, 0xC0, 0x07, 0x00, 0x40, 0x00, 0x00, // Code for char v + 0x0C, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0xC0, 0xFF, 0x07, 0x00, 0xF0, 0x07, 0x00, 0xF0, 0x07, 0x00, 0xFE, 0x01, 0x00, 0xFE, 0x00, 0x00, 0xF8, 0x07, 0x00, 0xC0, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x03, 0xC0, 0x03, 0x00, // Code for char w + 0x0C, 0x40, 0x00, 0x04, 0xC0, 0x00, 0x06, 0xC0, 0x01, 0x07, 0xC0, 0xC7, 0x07, 0x00, 0xFF, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xFF, 0x01, 0x80, 0xC7, 0x07, 0xC0, 0x81, 0x07, 0xC0, 0x00, 0x06, 0x40, 0x00, 0x04, // Code for char x + 0x0C, 0x40, 0x00, 0x00, 0xC0, 0x01, 0x00, 0xC0, 0x0F, 0x00, 0xC0, 0x7F, 0xC0, 0x00, 0xFE, 0xF3, 0x00, 0xF0, 0xFF, 0x00, 0xC0, 0x1F, 0x00, 0xF0, 0x07, 0x00, 0xFF, 0x00, 0xC0, 0x1F, 0x00, 0xC0, 0x03, 0x00, 0x40, 0x00, 0x00, // Code for char y + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x07, 0xC0, 0xC0, 0x07, 0xC0, 0xE0, 0x07, 0xC0, 0xF8, 0x06, 0xC0, 0x7E, 0x06, 0xC0, 0x1F, 0x06, 0xC0, 0x0F, 0x06, 0xC0, 0x03, 0x06, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char z + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x18, 0x00, 0xF8, 0xFF, 0x1F, 0xFE, 0xEF, 0x7F, 0xFE, 0xC3, 0x7F, 0x03, 0x00, 0xC0, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char { + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char | + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x03, 0x00, 0xC0, 0xFE, 0xC3, 0xFF, 0xFE, 0xE7, 0x7F, 0xFC, 0xFF, 0x3F, 0x00, 0x18, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char } + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ~ + 0x05, 0x80, 0xFF, 0x03, 0x80, 0xFF, 0x03, 0x80, 0x00, 0x02, 0x80, 0xFF, 0x03, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char  + }; + diff --git a/ili9341/fonts/UnispaceExt12x24.c b/ili9341/fonts/UnispaceExt12x24.c new file mode 100644 index 0000000..bd6e25a --- /dev/null +++ b/ili9341/fonts/UnispaceExt12x24.c @@ -0,0 +1,238 @@ + +//WARNING: This Font Require X-GLCD Lib. +// You can not use it with MikroE GLCD Lib. + +//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0 +//MikroElektronika 2011 +//http://www.mikroe.com + +//GLCD FontName : Unispace12x24 +//GLCD FontSize : 12 x 24 + +const unsigned short Unispace12x24[] = { + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x07, 0xF8, 0x7F, 0x07, 0xF8, 0x7F, 0x07, 0xF8, 0x7F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char " + 0x0B, 0x00, 0x00, 0x00, 0x80, 0x61, 0x00, 0x80, 0x61, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x80, 0x61, 0x00, 0x80, 0x61, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x80, 0x61, 0x00, 0x80, 0x61, 0x00, 0x00, 0x00, 0x00, // Code for char # + 0x0C, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x01, 0xF0, 0x0F, 0x01, 0x70, 0x0E, 0x01, 0x30, 0x0C, 0x01, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x30, 0x0C, 0x01, 0x30, 0x0C, 0x01, 0x30, 0xFC, 0x01, 0x30, 0xFC, 0x01, 0x00, 0x70, 0x00, // Code for char $ + 0x0C, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x06, 0xF8, 0xC3, 0x07, 0xE0, 0xF8, 0x00, 0x80, 0x1F, 0x00, 0xF0, 0xF1, 0x07, 0x38, 0x30, 0x04, 0x00, 0x10, 0x04, 0x00, 0xF0, 0x07, 0x00, 0xE0, 0x03, // Code for char % + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xF9, 0x01, 0xF8, 0xFF, 0x03, 0xF8, 0xFF, 0x07, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0xFE, 0x07, 0x18, 0xFE, 0x07, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, // Code for char & + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x3F, 0xFE, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ( + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x07, 0x00, 0xE0, 0xFE, 0xFF, 0x7F, 0xFC, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ) + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0xB8, 0x01, 0x00, 0xF0, 0x07, 0x00, 0xE0, 0x07, 0x00, 0xF8, 0x01, 0x00, 0xD8, 0x03, 0x00, 0x60, 0x07, 0x00, 0x60, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char * + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0xC0, 0x7F, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, // Code for char + + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char , + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, // Code for char - + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char . + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x00, 0xC0, 0x03, 0x00, 0xF0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x0F, 0x00, 0xC0, 0x03, 0x00, 0xE0, 0x01, 0x00, 0x78, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char / + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0xE0, 0x07, 0x18, 0xFC, 0x06, 0x98, 0x1F, 0x06, 0xF8, 0x03, 0x06, 0xF8, 0x00, 0x07, 0xF8, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char 0 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char 1 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x18, 0xFC, 0x07, 0x18, 0xFC, 0x07, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0xF8, 0x0F, 0x06, 0xF8, 0x0F, 0x06, 0xF0, 0x07, 0x06, 0x00, 0x00, 0x00, // Code for char 2 + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0xF8, 0xFF, 0x07, 0xF0, 0xFF, 0x07, 0xE0, 0xF3, 0x03, 0x00, 0x00, 0x00, // Code for char 3 + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xDF, 0x00, 0xC0, 0xC7, 0x00, 0xF0, 0xC1, 0x00, 0x78, 0xC0, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, // Code for char 4 + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x06, 0xF8, 0x07, 0x06, 0xF8, 0x07, 0x06, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0xFE, 0x07, 0x18, 0xFE, 0x07, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, // Code for char 5 + 0x0B, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x03, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0xFE, 0x07, 0x00, 0xFE, 0x07, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, // Code for char 6 + 0x0C, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x04, 0x18, 0x00, 0x07, 0x18, 0xE0, 0x07, 0x18, 0xF8, 0x03, 0x18, 0xFF, 0x00, 0xD8, 0x1F, 0x00, 0xF8, 0x07, 0x00, 0xF8, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0x00, 0x00, // Code for char 7 + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFB, 0x03, 0xF0, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF0, 0xFB, 0x03, 0x00, 0x00, 0x00, // Code for char 8 + 0x0B, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0xF8, 0x0F, 0x06, 0xF8, 0x0F, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char 9 + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x07, 0x00, 0x0E, 0x07, 0x00, 0x0E, 0x07, 0x00, 0x0E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char : + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x7E, 0x00, 0x0E, 0x7E, 0x00, 0x0E, 0x7E, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ; + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x39, 0x00, 0xC0, 0x71, 0x00, 0xE0, 0xE0, 0x00, 0x70, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char < + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x19, 0x00, 0x80, 0x19, 0x00, 0x80, 0x19, 0x00, 0x80, 0x19, 0x00, 0x80, 0x19, 0x00, 0x80, 0x19, 0x00, 0x80, 0x19, 0x00, 0x80, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char = + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xC0, 0x01, 0x60, 0xE0, 0x00, 0xC0, 0x70, 0x00, 0x80, 0x31, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char > + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x30, 0x07, 0x18, 0x7C, 0x07, 0x18, 0x1C, 0x07, 0x18, 0x0C, 0x07, 0x18, 0x0C, 0x00, 0xF8, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, // Code for char ? + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x3F, 0xC0, 0xFF, 0x3F, 0xC0, 0x00, 0x30, 0xC0, 0xF8, 0x31, 0xC0, 0xFC, 0x33, 0xC0, 0x0C, 0x33, 0xC0, 0xFC, 0x33, 0xC0, 0x00, 0x33, 0xC0, 0xFF, 0x33, 0xC0, 0xFF, 0x33, 0x00, 0x00, 0x00, // Code for char @ + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xFC, 0x07, 0xC0, 0xFF, 0x07, 0xF8, 0xFF, 0x00, 0xF8, 0xC0, 0x00, 0x78, 0xC0, 0x00, 0xF8, 0xDF, 0x00, 0xE0, 0xFF, 0x07, 0x00, 0xFE, 0x07, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x04, // Code for char A + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xE0, 0xF3, 0x03, 0x00, 0x00, 0x00, // Code for char B + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x00, 0xF0, 0xFF, 0x03, 0xF8, 0xFF, 0x07, 0x38, 0x00, 0x07, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char C + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char D + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char E + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0xF0, 0xFF, 0x03, 0xF8, 0xFF, 0x07, 0x38, 0x00, 0x07, 0x18, 0x00, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0xFC, 0x07, 0x18, 0xFC, 0x07, 0x18, 0xFC, 0x07, 0x00, 0x00, 0x00, // Code for char G + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char H + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char I + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x03, 0xF8, 0xFF, 0x01, 0x00, 0x00, 0x00, // Code for char J + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x0E, 0x00, 0x80, 0x3F, 0x00, 0xC0, 0xFF, 0x00, 0xF0, 0xF1, 0x03, 0x78, 0xE0, 0x07, 0x38, 0x80, 0x07, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char K + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char L + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0x07, 0x00, 0xC0, 0xFF, 0x01, 0x00, 0xF0, 0x07, 0x00, 0xE0, 0x07, 0x80, 0xFF, 0x03, 0xF8, 0x0F, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char M + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0x01, 0x00, 0xF0, 0x07, 0x00, 0x80, 0x3F, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xF0, 0x03, 0x00, 0xC0, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char N + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char O + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0xF8, 0x1F, 0x00, 0xF8, 0x1F, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, // Code for char P + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x1E, 0x18, 0x00, 0x1E, 0xF8, 0xFF, 0x17, 0xF8, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Q + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0x18, 0x0C, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF0, 0xF3, 0x07, 0x00, 0x00, 0x00, // Code for char R + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x06, 0xF0, 0x07, 0x06, 0xF8, 0x0F, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0xFC, 0x07, 0x18, 0xFC, 0x07, 0x18, 0xF8, 0x03, 0x00, 0x00, 0x00, // Code for char S + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x01, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char U + 0x0C, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0xF8, 0xFF, 0x00, 0x00, 0xFF, 0x07, 0x00, 0xC0, 0x07, 0x00, 0x80, 0x07, 0x00, 0xFE, 0x07, 0xF0, 0xFF, 0x00, 0xF8, 0x0F, 0x00, 0xF8, 0x00, 0x00, 0x08, 0x00, 0x00, // Code for char V + 0x0C, 0x38, 0x00, 0x00, 0xF8, 0xFF, 0x00, 0xF8, 0xFF, 0x07, 0x00, 0xFE, 0x07, 0x00, 0xE0, 0x07, 0x80, 0xFF, 0x00, 0x80, 0x3F, 0x00, 0x00, 0xF8, 0x07, 0x00, 0xE0, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x03, 0xF8, 0x01, 0x00, // Code for char W + 0x0C, 0x00, 0x00, 0x00, 0x18, 0x00, 0x06, 0x78, 0x80, 0x07, 0xF8, 0xE1, 0x07, 0xF0, 0xFF, 0x01, 0x80, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0xC0, 0xFF, 0x01, 0xF0, 0xF3, 0x07, 0xF8, 0xC0, 0x07, 0x38, 0x00, 0x07, 0x08, 0x00, 0x04, // Code for char X + 0x0C, 0x08, 0x00, 0x00, 0x38, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x03, 0x00, 0xE0, 0xFF, 0x07, 0x00, 0xFF, 0x07, 0x00, 0xFE, 0x07, 0xC0, 0xFF, 0x07, 0xF8, 0x07, 0x00, 0xF8, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0x00, 0x00, // Code for char Y + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x06, 0x18, 0x80, 0x07, 0x18, 0xE0, 0x07, 0x18, 0xF8, 0x07, 0x18, 0x7E, 0x06, 0x18, 0x3F, 0x06, 0xD8, 0x0F, 0x06, 0xF8, 0x03, 0x06, 0xF8, 0x00, 0x06, 0x38, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char Z + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [ + 0x0B, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x38, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char BackSlash + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ] + 0x0C, 0x00, 0x02, 0x00, 0x00, 0x03, 0x00, 0x80, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x38, 0x00, 0x00, 0x18, 0x00, 0x00, 0x70, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x02, 0x00, // Code for char ^ + 0x0C, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, // Code for char _ + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ` + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0xC0, 0xF8, 0x07, 0xC0, 0xF8, 0x07, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char a + 0x0B, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char b + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char c + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char d + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x30, 0x06, 0xC0, 0x30, 0x06, 0xC0, 0x30, 0x06, 0xC0, 0x30, 0x06, 0xC0, 0x39, 0x06, 0xC0, 0x3F, 0x06, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, // Code for char e + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char f + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0xC7, 0xC0, 0x00, 0xC6, 0xC0, 0x00, 0xC6, 0xC0, 0x00, 0xC6, 0xC0, 0x00, 0xC6, 0xC0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0xFF, 0x7F, 0x00, 0x00, 0x00, // Code for char g + 0x0B, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char h + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char i + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xE0, 0xCC, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0xCC, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j + 0x0C, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x7C, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xEF, 0x01, 0xC0, 0xC7, 0x03, 0xC0, 0x81, 0x07, 0xC0, 0x00, 0x06, 0x40, 0x00, 0x04, 0x00, 0x00, 0x04, // Code for char k + 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char l + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char m + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char n + 0x0C, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0xFE, 0x00, // Code for char o + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char p + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0x00, 0x00, 0x00, // Code for char q + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x01, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char r + 0x0C, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x06, 0xC0, 0x1F, 0x06, 0xC0, 0x1D, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0xF8, 0x07, 0xC0, 0xF0, 0x03, 0x00, 0xC0, 0x00, // Code for char s + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char t + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char u + 0x0C, 0x40, 0x00, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x1F, 0x00, 0xC0, 0xFF, 0x01, 0x00, 0xFC, 0x07, 0x00, 0xC0, 0x07, 0x00, 0x80, 0x07, 0x00, 0xF8, 0x07, 0x80, 0xFF, 0x03, 0xC0, 0x3F, 0x00, 0xC0, 0x07, 0x00, 0x40, 0x00, 0x00, // Code for char v + 0x0C, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0xC0, 0xFF, 0x07, 0x00, 0xF0, 0x07, 0x00, 0xF0, 0x07, 0x00, 0xFE, 0x01, 0x00, 0xFE, 0x00, 0x00, 0xF8, 0x07, 0x00, 0xC0, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x03, 0xC0, 0x03, 0x00, // Code for char w + 0x0C, 0x40, 0x00, 0x04, 0xC0, 0x00, 0x06, 0xC0, 0x01, 0x07, 0xC0, 0xC7, 0x07, 0x00, 0xFF, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xFF, 0x01, 0x80, 0xC7, 0x07, 0xC0, 0x81, 0x07, 0xC0, 0x00, 0x06, 0x40, 0x00, 0x04, // Code for char x + 0x0C, 0x40, 0x00, 0x00, 0xC0, 0x01, 0x00, 0xC0, 0x0F, 0x00, 0xC0, 0x7F, 0xC0, 0x00, 0xFE, 0xF3, 0x00, 0xF0, 0xFF, 0x00, 0xC0, 0x1F, 0x00, 0xF0, 0x07, 0x00, 0xFF, 0x00, 0xC0, 0x1F, 0x00, 0xC0, 0x03, 0x00, 0x40, 0x00, 0x00, // Code for char y + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x07, 0xC0, 0xC0, 0x07, 0xC0, 0xE0, 0x07, 0xC0, 0xF8, 0x06, 0xC0, 0x7E, 0x06, 0xC0, 0x1F, 0x06, 0xC0, 0x0F, 0x06, 0xC0, 0x03, 0x06, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char z + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x18, 0x00, 0xF8, 0xFF, 0x1F, 0xFE, 0xEF, 0x7F, 0xFE, 0xC3, 0x7F, 0x03, 0x00, 0xC0, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char { + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char | + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x03, 0x00, 0xC0, 0xFE, 0xC3, 0xFF, 0xFE, 0xE7, 0x7F, 0xFC, 0xFF, 0x3F, 0x00, 0x18, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char } + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ~ + 0x05, 0x80, 0xFF, 0x03, 0x80, 0xFF, 0x03, 0x80, 0x00, 0x02, 0x80, 0xFF, 0x03, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char € + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‚ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ƒ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char „ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char … + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char † + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‡ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ˆ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‰ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Š + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‹ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Œ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ž + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‘ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ’ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char “ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ” + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char • + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char – + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char — + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ˜ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ™ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char š + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char › + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char œ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char  + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ž + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ÿ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char   + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0xF7, 0xFF, 0x00, 0xF7, 0xFF, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¡ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7F, 0x00, 0xE0, 0xFF, 0x01, 0xE0, 0xFF, 0x01, 0x60, 0x80, 0x01, 0xF8, 0xFF, 0x07, 0x60, 0x80, 0x01, 0x60, 0x80, 0x01, 0x60, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¢ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xF0, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0x06, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char £ + 0x0C, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x7F, 0xEF, 0xFF, 0x7F, 0xEF, 0x1F, 0x73, 0xEF, 0x8F, 0x73, 0xEF, 0xE7, 0x7F, 0xEF, 0xE7, 0x7F, 0xCF, 0xE7, 0x7F, 0x0F, 0xF0, 0x7F, 0x0F, 0xF0, 0x7F, 0x3F, 0xF8, 0x7F, 0xFE, 0xFF, 0x3F, // Code for char ¤ + 0x0C, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0xF8, 0x20, 0x01, 0xF8, 0x23, 0x01, 0xE0, 0xFF, 0x07, 0x00, 0xFF, 0x07, 0x00, 0xFE, 0x07, 0xC0, 0xFF, 0x07, 0xF8, 0x27, 0x01, 0xF8, 0x20, 0x01, 0x38, 0x00, 0x00, 0x08, 0x00, 0x00, // Code for char ¥ + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0xFF, 0xFF, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¦ + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0x18, 0x00, 0xF0, 0x7F, 0x30, 0xF8, 0xFF, 0x30, 0x18, 0xC3, 0x30, 0x18, 0xC3, 0x30, 0x18, 0xC3, 0x30, 0x18, 0xC3, 0x30, 0x18, 0xFF, 0x3F, 0x18, 0xFF, 0x3F, 0x00, 0x3C, 0x0F, 0x00, 0x00, 0x00, // Code for char § + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¨ + 0x0C, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x01, 0x18, 0x00, 0x03, 0x0C, 0x1F, 0x04, 0xC4, 0x7F, 0x04, 0x44, 0x40, 0x04, 0x44, 0x40, 0x04, 0x44, 0x40, 0x04, 0x0C, 0x00, 0x04, 0x08, 0x00, 0x02, 0xF8, 0xFF, 0x03, 0x00, 0x1F, 0x00, // Code for char © + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xC0, 0x0F, 0x00, 0xD8, 0x0F, 0x00, 0xD8, 0x0C, 0x00, 0xD8, 0x0C, 0x00, 0xF8, 0x0F, 0x00, 0xF8, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ª + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x34, 0x00, 0x00, 0x62, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x36, 0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char « + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, // Code for char ¬ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, // Code for char ­ + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x10, 0x04, 0x00, 0x08, 0x08, 0x00, 0xF4, 0x17, 0x00, 0x94, 0x10, 0x00, 0x94, 0x10, 0x00, 0xF4, 0x17, 0x00, 0x68, 0x0F, 0x00, 0x18, 0x0C, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, // Code for char ® + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¯ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0xFC, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0x0C, 0x0C, 0x00, 0x0C, 0x0C, 0x00, 0x0C, 0x0C, 0x00, 0xFC, 0x0F, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ° + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0xC0, 0x7F, 0x06, 0xC0, 0x7F, 0x06, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, // Code for char ± + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x48, 0x02, 0x00, 0x48, 0x02, 0x00, 0xF8, 0x03, 0x00, 0xB0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ² + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x07, 0x00, 0x48, 0x04, 0x00, 0x48, 0x04, 0x00, 0x78, 0x04, 0x00, 0x30, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ³ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ´ + 0x0C, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x7F, 0xEF, 0xFF, 0x7F, 0xEF, 0x1F, 0x73, 0xEF, 0x8F, 0x73, 0xEF, 0xE7, 0x7F, 0xEF, 0xE7, 0x7F, 0xCF, 0xE7, 0x7F, 0x0F, 0xF0, 0x7F, 0x0F, 0xF0, 0x7F, 0x3F, 0xF8, 0x7F, 0xFE, 0xFF, 0x3F, // Code for char µ + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0xF8, 0x0F, 0x00, 0xF8, 0x1F, 0x00, 0xF8, 0x1F, 0x00, 0xF8, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x00, 0x00, 0x00, // Code for char ¶ + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char · + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¸ + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0xF8, 0x07, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¹ + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0xF8, 0x1F, 0x00, 0xF8, 0x1F, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0xF8, 0x1F, 0x00, 0xF8, 0x1F, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char º + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE3, 0x00, 0x00, 0x36, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x63, 0x00, 0x00, 0x36, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char » + 0x0C, 0x00, 0x04, 0x00, 0x08, 0x04, 0x04, 0xF8, 0x07, 0x07, 0x00, 0xC4, 0x01, 0x00, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x83, 0x03, 0xC0, 0x60, 0x02, 0x70, 0x18, 0x02, 0x18, 0xF8, 0x07, 0x08, 0x00, 0x02, // Code for char ¼ + 0x0C, 0x00, 0x04, 0x00, 0x08, 0x04, 0x04, 0xF8, 0x07, 0x07, 0x00, 0xC4, 0x01, 0x00, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x0E, 0x00, 0x80, 0xCB, 0x07, 0xC0, 0x48, 0x04, 0x70, 0x48, 0x04, 0x18, 0x78, 0x04, 0x08, 0x30, 0x04, // Code for char ½ + 0x0C, 0x00, 0x00, 0x00, 0x08, 0x04, 0x06, 0x48, 0x04, 0x03, 0x48, 0xC4, 0x01, 0xF8, 0x77, 0x00, 0x00, 0x18, 0x00, 0x00, 0x0E, 0x00, 0x80, 0x83, 0x03, 0xC0, 0x70, 0x02, 0x30, 0x18, 0x06, 0x18, 0xF8, 0x07, 0x00, 0x00, 0x02, // Code for char ¾ + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7F, 0x00, 0x80, 0xFF, 0x00, 0x80, 0xE3, 0x00, 0x80, 0xC1, 0x00, 0xC7, 0xC1, 0x00, 0xF7, 0xC1, 0x00, 0xF7, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, // Code for char ¿ + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x03, 0xFC, 0x07, 0xC2, 0xFF, 0x07, 0xFE, 0xFF, 0x00, 0xFE, 0xC0, 0x00, 0x7E, 0xC0, 0x00, 0xFE, 0xDF, 0x00, 0xE0, 0xFF, 0x07, 0x00, 0xFE, 0x07, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x04, // Code for char À + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xFC, 0x07, 0xC0, 0xFF, 0x07, 0xFE, 0xFF, 0x00, 0xFE, 0xC0, 0x00, 0x7E, 0xC0, 0x00, 0xFE, 0xDF, 0x00, 0xE2, 0xFF, 0x07, 0x03, 0xFE, 0x07, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x04, // Code for char Á + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x02, 0xFC, 0x07, 0xC2, 0xFF, 0x07, 0xFB, 0xFF, 0x00, 0xF9, 0xC0, 0x00, 0x79, 0xC0, 0x00, 0xFB, 0xDF, 0x00, 0xE2, 0xFF, 0x07, 0x02, 0xFE, 0x07, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x04, // Code for char  + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x02, 0xFC, 0x07, 0xC3, 0xFF, 0x07, 0xF9, 0xFF, 0x00, 0xFB, 0xC0, 0x00, 0x7B, 0xC0, 0x00, 0xFA, 0xDF, 0x00, 0xE2, 0xFF, 0x07, 0x03, 0xFE, 0x07, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x04, // Code for char à + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x03, 0xFC, 0x07, 0xC3, 0xFF, 0x07, 0xFB, 0xFF, 0x00, 0xF8, 0xC0, 0x00, 0x78, 0xC0, 0x00, 0xFB, 0xDF, 0x00, 0xE3, 0xFF, 0x07, 0x03, 0xFE, 0x07, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x04, // Code for char Ä + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xFC, 0x07, 0xC7, 0xFF, 0x07, 0xFF, 0xFF, 0x00, 0xF9, 0xC0, 0x00, 0x79, 0xC0, 0x00, 0xFF, 0xDF, 0x00, 0xE7, 0xFF, 0x07, 0x00, 0xFC, 0x07, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x04, // Code for char Å + 0x0C, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x30, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, // Code for char Æ + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x00, 0xF0, 0xFF, 0x03, 0xF8, 0xFF, 0x07, 0x38, 0x00, 0x07, 0x18, 0x00, 0xF6, 0x18, 0x00, 0xF6, 0x18, 0x00, 0x16, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char Ç + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xFB, 0xFF, 0x07, 0xFA, 0xFF, 0x07, 0x1E, 0x0C, 0x06, 0x1E, 0x0C, 0x06, 0x1E, 0x0C, 0x06, 0x1E, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char È + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x1E, 0x0C, 0x06, 0x1E, 0x0C, 0x06, 0x1E, 0x0C, 0x06, 0x1E, 0x0C, 0x06, 0x1A, 0x0C, 0x06, 0x1B, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char É + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFE, 0xFF, 0x07, 0x1F, 0x0C, 0x06, 0x1B, 0x0C, 0x06, 0x1B, 0x0C, 0x06, 0x1F, 0x0C, 0x06, 0x1E, 0x0C, 0x06, 0x1C, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char Ê + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xFB, 0xFF, 0x07, 0xFB, 0xFF, 0x07, 0x1B, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x1B, 0x0C, 0x06, 0x1B, 0x0C, 0x06, 0x1B, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char Ë + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x06, 0x1B, 0x00, 0x06, 0x1A, 0x00, 0x06, 0x1E, 0x00, 0x06, 0xFE, 0xFF, 0x07, 0xFE, 0xFF, 0x07, 0xFE, 0xFF, 0x07, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char Ì + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x1E, 0x00, 0x06, 0xFE, 0xFF, 0x07, 0xFE, 0xFF, 0x07, 0xFE, 0xFF, 0x07, 0x1A, 0x00, 0x06, 0x1B, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char Í + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x06, 0x1A, 0x00, 0x06, 0x1A, 0x00, 0x06, 0x1B, 0x00, 0x06, 0xF9, 0xFF, 0x07, 0xF9, 0xFF, 0x07, 0xFB, 0xFF, 0x07, 0x1A, 0x00, 0x06, 0x1A, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char Î + 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x06, 0x1B, 0x00, 0x06, 0x1B, 0x00, 0x06, 0x1B, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xFB, 0xFF, 0x07, 0x1B, 0x00, 0x06, 0x1B, 0x00, 0x06, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char Ï + 0x0B, 0x00, 0x0C, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x0C, 0x06, 0x18, 0x00, 0x06, 0x78, 0x80, 0x07, 0xF8, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Ð + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xFA, 0xFF, 0x07, 0xFB, 0x01, 0x00, 0xF1, 0x07, 0x00, 0x83, 0x3F, 0x00, 0x03, 0xFE, 0x00, 0x02, 0xF0, 0x03, 0x02, 0xC0, 0x07, 0xFB, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char Ñ + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0xFB, 0xFF, 0x07, 0xFA, 0xFF, 0x07, 0x1E, 0x00, 0x06, 0x1E, 0x00, 0x06, 0x1E, 0x00, 0x06, 0x1E, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Ò + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x1E, 0x00, 0x06, 0x1E, 0x00, 0x06, 0x1E, 0x00, 0x06, 0x1E, 0x00, 0x06, 0xFA, 0xFF, 0x07, 0xFB, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Ó + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0xFC, 0xFF, 0x07, 0xFE, 0xFF, 0x07, 0x1F, 0x00, 0x06, 0x1B, 0x00, 0x06, 0x1B, 0x00, 0x06, 0x1F, 0x00, 0x06, 0xFE, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Ô + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0xFA, 0xFF, 0x07, 0xFB, 0xFF, 0x07, 0x19, 0x00, 0x06, 0x1B, 0x00, 0x06, 0x1B, 0x00, 0x06, 0x1A, 0x00, 0x06, 0xFA, 0xFF, 0x07, 0xFB, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Õ + 0x0B, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0xFB, 0xFF, 0x07, 0xFB, 0xFF, 0x07, 0x1B, 0x00, 0x06, 0x18, 0x00, 0x06, 0x18, 0x00, 0x06, 0x1B, 0x00, 0x06, 0xFB, 0xFF, 0x07, 0xFB, 0xFF, 0x07, 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Ö + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x00, 0xC0, 0x39, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x80, 0x1F, 0x00, 0xC0, 0x39, 0x00, 0x80, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char × + 0x0C, 0x00, 0x00, 0x08, 0xE0, 0xFF, 0x0D, 0xF8, 0xFF, 0x0F, 0xF8, 0xFF, 0x07, 0x18, 0xF0, 0x06, 0x18, 0x3C, 0x06, 0x18, 0x0E, 0x06, 0x98, 0x07, 0x06, 0xF8, 0x81, 0x07, 0xF8, 0xFF, 0x07, 0xFC, 0xFF, 0x03, 0x84, 0x7F, 0x00, // Code for char Ø + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x01, 0xFB, 0xFF, 0x07, 0xFA, 0xFF, 0x07, 0x06, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00, 0x06, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Ù + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x01, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0x06, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00, 0x06, 0xFA, 0xFF, 0x07, 0xFB, 0xFF, 0x07, 0xF8, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Ú + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x01, 0xFA, 0xFF, 0x07, 0xFA, 0xFF, 0x07, 0x03, 0x00, 0x06, 0x01, 0x00, 0x06, 0x01, 0x00, 0x06, 0x03, 0x00, 0x06, 0xFA, 0xFF, 0x07, 0xFA, 0xFF, 0x07, 0xF8, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Û + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x01, 0xFB, 0xFF, 0x07, 0xFB, 0xFF, 0x07, 0x03, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x03, 0x00, 0x06, 0xFB, 0xFF, 0x07, 0xFB, 0xFF, 0x07, 0xF8, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char Ü + 0x0C, 0x08, 0x00, 0x00, 0x38, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x03, 0x00, 0xE6, 0xFF, 0x07, 0x06, 0xFF, 0x07, 0x06, 0xFE, 0x07, 0xC6, 0xFF, 0x07, 0xFA, 0x07, 0x00, 0xFB, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0x00, 0x00, // Code for char Ý + 0x0B, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xF8, 0xFF, 0x07, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xFF, 0x00, 0xC0, 0xFF, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, // Code for char Þ + 0x0C, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x06, 0x0C, 0x06, 0x06, 0x0C, 0x06, 0x06, 0xFC, 0x8F, 0x07, 0xFC, 0xFF, 0x07, 0xF8, 0xFD, 0x03, 0x00, 0x60, 0x00, // Code for char ß + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0xCC, 0xF8, 0x07, 0xCC, 0xF8, 0x07, 0xCC, 0x18, 0x06, 0xC8, 0x18, 0x06, 0xC8, 0x18, 0x06, 0xD8, 0x18, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char à + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0xC0, 0xF8, 0x07, 0xC0, 0xF8, 0x07, 0xD8, 0x18, 0x06, 0xC8, 0x18, 0x06, 0xC8, 0x18, 0x06, 0xCC, 0x18, 0x06, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char á + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0xC8, 0xF8, 0x07, 0xC8, 0xF8, 0x07, 0xCC, 0x18, 0x06, 0xC4, 0x18, 0x06, 0xC4, 0x18, 0x06, 0xCC, 0x18, 0x06, 0xC8, 0xFF, 0x07, 0xC8, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char â + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0xD8, 0xF8, 0x07, 0xCC, 0xF8, 0x07, 0xC4, 0x18, 0x06, 0xCC, 0x18, 0x06, 0xD8, 0x18, 0x06, 0xD8, 0x18, 0x06, 0xD8, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char ã + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0xCC, 0xF8, 0x07, 0xCC, 0xF8, 0x07, 0xCC, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xCC, 0x18, 0x06, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char ä + 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0xC0, 0xF8, 0x07, 0xCC, 0xF8, 0x07, 0xDE, 0x18, 0x06, 0xD2, 0x18, 0x06, 0xD2, 0x18, 0x06, 0xDE, 0x18, 0x06, 0xDE, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char å + 0x0C, 0x00, 0xE0, 0x01, 0xC0, 0xF8, 0x07, 0xC0, 0xF8, 0x07, 0xC0, 0x18, 0x06, 0xC0, 0x18, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x31, 0x07, 0xC0, 0x30, 0x06, 0xC0, 0x30, 0x06, 0xC0, 0x3F, 0x06, 0x80, 0x1F, 0x00, // Code for char æ + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0xF6, 0xC0, 0x00, 0xF6, 0xC0, 0x00, 0x16, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char ç + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0xCC, 0x30, 0x06, 0xC8, 0x30, 0x06, 0xC8, 0x30, 0x06, 0xD8, 0x30, 0x06, 0xC0, 0x39, 0x06, 0xC0, 0x3F, 0x06, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, // Code for char è + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xD8, 0x30, 0x06, 0xC8, 0x30, 0x06, 0xC8, 0x30, 0x06, 0xCC, 0x30, 0x06, 0xCC, 0x39, 0x06, 0xCC, 0x3F, 0x06, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, // Code for char é + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC8, 0xFF, 0x07, 0xC8, 0xFF, 0x07, 0xCC, 0x30, 0x06, 0xC4, 0x30, 0x06, 0xC4, 0x30, 0x06, 0xCC, 0x30, 0x06, 0xC8, 0x39, 0x06, 0xC8, 0x3F, 0x06, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, // Code for char ê + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0xCC, 0x30, 0x06, 0xC0, 0x30, 0x06, 0xC0, 0x30, 0x06, 0xCC, 0x30, 0x06, 0xCC, 0x39, 0x06, 0xCC, 0x3F, 0x06, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, // Code for char ë + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xC8, 0xFF, 0x07, 0xC8, 0xFF, 0x07, 0xD8, 0xFF, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char ì + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xD8, 0x00, 0x06, 0xC8, 0x00, 0x06, 0xC8, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0x0C, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char í + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x06, 0xC8, 0x00, 0x06, 0xC8, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xC4, 0xFF, 0x07, 0xC4, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0x08, 0x00, 0x06, 0x08, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char î + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char ï + 0x0B, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0xCC, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xFC, 0xFF, 0x07, 0xFC, 0xFF, 0x07, 0xF8, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char ð + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0xD8, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0xC4, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xD8, 0x00, 0x00, 0xD8, 0x00, 0x00, 0xD8, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char ñ + 0x0C, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0xCC, 0x00, 0x06, 0xC8, 0x00, 0x06, 0xC8, 0x00, 0x06, 0xD8, 0x00, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0xFE, 0x00, // Code for char ò + 0x0C, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xD8, 0x00, 0x06, 0xC8, 0x00, 0x06, 0xC8, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0xFE, 0x00, // Code for char ó + 0x0C, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xC8, 0xFF, 0x07, 0xC8, 0xFF, 0x07, 0xCC, 0x00, 0x06, 0xC4, 0x00, 0x06, 0xC4, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xC8, 0xFF, 0x07, 0xC8, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0xFE, 0x00, // Code for char ô + 0x0C, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xD8, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0xC4, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xD8, 0x00, 0x06, 0xD8, 0x00, 0x06, 0xD8, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0xFE, 0x00, // Code for char õ + 0x0C, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0xCC, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xCC, 0x00, 0x06, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0xFE, 0x00, // Code for char ö + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x60, 0x66, 0x00, 0x60, 0x66, 0x00, 0x60, 0x66, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, // Code for char ÷ + 0x0C, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x0B, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x07, 0xC0, 0xE0, 0x07, 0xC0, 0x78, 0x06, 0xC0, 0x1E, 0x06, 0xC0, 0x07, 0x06, 0xE0, 0xFF, 0x07, 0xF0, 0xFF, 0x07, 0xB0, 0xFF, 0x03, 0x00, 0xFE, 0x00, // Code for char ø + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0x0C, 0x00, 0x06, 0x08, 0x00, 0x06, 0x08, 0x00, 0x06, 0x18, 0x00, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char ù + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x18, 0x00, 0x06, 0x08, 0x00, 0x06, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x06, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char ú + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0xC8, 0xFF, 0x07, 0xC8, 0xFF, 0x07, 0x0C, 0x00, 0x06, 0x04, 0x00, 0x06, 0x04, 0x00, 0x06, 0x0C, 0x00, 0x06, 0xC8, 0xFF, 0x07, 0xC8, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char û + 0x0B, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0x0C, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0C, 0x00, 0x06, 0xCC, 0xFF, 0x07, 0xCC, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, // Code for char ü + 0x0C, 0x40, 0x00, 0x00, 0xC0, 0x01, 0x00, 0xC0, 0x0F, 0x00, 0xC0, 0x7F, 0xC0, 0x18, 0xFE, 0xF3, 0x08, 0xF0, 0xFF, 0x08, 0xC0, 0x1F, 0x0C, 0xF0, 0x07, 0x0C, 0xFF, 0x00, 0xCC, 0x1F, 0x00, 0xC0, 0x03, 0x00, 0x40, 0x00, 0x00, // Code for char ý + 0x0B, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0xFF, 0x07, 0xC0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, // Code for char þ + 0x0C, 0x40, 0x00, 0x00, 0xC0, 0x01, 0x00, 0xCC, 0x0F, 0x00, 0xCC, 0x7F, 0xC0, 0x0C, 0xFE, 0xF3, 0x00, 0xF0, 0xFF, 0x00, 0xC0, 0x1F, 0x0C, 0xF0, 0x07, 0x0C, 0xFF, 0x00, 0xCC, 0x1F, 0x00, 0xC0, 0x03, 0x00, 0x40, 0x00, 0x00 // Code for char ÿ + }; + diff --git a/ili9341/fonts/Wendy7x8.c b/ili9341/fonts/Wendy7x8.c new file mode 100644 index 0000000..91200bd --- /dev/null +++ b/ili9341/fonts/Wendy7x8.c @@ -0,0 +1,111 @@ + +//WARNING: This Font Require X-GLCD Lib. +// You can not use it with MikroE GLCD Lib. + +//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0 +//MikroElektronika 2011 +//http://www.mikroe.com + +//GLCD FontName : wendy7x8 +//Based on a font by Wendy - fricky@gmail.com +//GLCD FontSize : 7 x 8 + +const unsigned short wendy7x8[] = { + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + 0x01, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! + 0x03, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, // Code for char " + 0x05, 0x60, 0x7C, 0x04, 0x64, 0x7C, 0x00, 0x00, // Code for char # + 0x03, 0x5C, 0xFE, 0x74, 0x00, 0x00, 0x00, 0x00, // Code for char $ + 0x04, 0x48, 0x20, 0x10, 0x48, 0x00, 0x00, 0x00, // Code for char % + 0x03, 0x10, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, // Code for char & + 0x01, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' + 0x02, 0x38, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ( + 0x02, 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ) + 0x07, 0x08, 0x1C, 0x3C, 0x78, 0x3C, 0x1C, 0x08, // Code for char * + 0x03, 0x10, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, // Code for char + + 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char , + 0x03, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // Code for char - + 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char . + 0x03, 0x60, 0x10, 0x0C, 0x00, 0x00, 0x00, 0x00, // Code for char / + 0x03, 0x7C, 0x44, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char 0 + 0x01, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 1 + 0x03, 0x74, 0x54, 0x5C, 0x00, 0x00, 0x00, 0x00, // Code for char 2 + 0x03, 0x54, 0x54, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char 3 + 0x03, 0x3C, 0x20, 0x78, 0x00, 0x00, 0x00, 0x00, // Code for char 4 + 0x03, 0x5C, 0x54, 0x74, 0x00, 0x00, 0x00, 0x00, // Code for char 5 + 0x03, 0x7C, 0x54, 0x74, 0x00, 0x00, 0x00, 0x00, // Code for char 6 + 0x03, 0x04, 0x04, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char 7 + 0x03, 0x7C, 0x54, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char 8 + 0x03, 0x5C, 0x54, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char 9 + 0x01, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char : + 0x01, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ; + 0x03, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x00, // Code for char < + 0x02, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char = + 0x03, 0x44, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, // Code for char > + 0x03, 0x5A, 0x0A, 0x0E, 0x00, 0x00, 0x00, 0x00, // Code for char ? + 0x05, 0x7E, 0x42, 0x5A, 0x52, 0x5E, 0x00, 0x00, // Code for char @ + 0x03, 0x7C, 0x14, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char A + 0x03, 0x7C, 0x54, 0x6C, 0x00, 0x00, 0x00, 0x00, // Code for char B + 0x03, 0x7C, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, // Code for char C + 0x03, 0x7C, 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, // Code for char D + 0x03, 0x7C, 0x54, 0x54, 0x00, 0x00, 0x00, 0x00, // Code for char E + 0x03, 0x7C, 0x14, 0x04, 0x00, 0x00, 0x00, 0x00, // Code for char F + 0x03, 0x7C, 0x44, 0x74, 0x00, 0x00, 0x00, 0x00, // Code for char G + 0x03, 0x7C, 0x10, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char H + 0x01, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I + 0x03, 0x40, 0x40, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char J + 0x03, 0x7C, 0x10, 0x6C, 0x00, 0x00, 0x00, 0x00, // Code for char K + 0x03, 0x7C, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, // Code for char L + 0x05, 0x7C, 0x04, 0x38, 0x04, 0x7C, 0x00, 0x00, // Code for char M + 0x03, 0x7C, 0x04, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char N + 0x03, 0x7C, 0x44, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char O + 0x03, 0x7C, 0x14, 0x1C, 0x00, 0x00, 0x00, 0x00, // Code for char P + 0x03, 0x1C, 0x14, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char Q + 0x03, 0x7C, 0x14, 0x6C, 0x00, 0x00, 0x00, 0x00, // Code for char R + 0x03, 0x5C, 0x54, 0x74, 0x00, 0x00, 0x00, 0x00, // Code for char S + 0x03, 0x04, 0x7C, 0x04, 0x00, 0x00, 0x00, 0x00, // Code for char T + 0x03, 0x7C, 0x40, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char U + 0x03, 0x3C, 0x40, 0x3C, 0x00, 0x00, 0x00, 0x00, // Code for char V + 0x05, 0x7C, 0x40, 0x30, 0x40, 0x7C, 0x00, 0x00, // Code for char W + 0x03, 0x6C, 0x10, 0x6C, 0x00, 0x00, 0x00, 0x00, // Code for char X + 0x03, 0x5C, 0x50, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char Y + 0x03, 0x64, 0x54, 0x4C, 0x00, 0x00, 0x00, 0x00, // Code for char Z + 0x02, 0x7C, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [ + 0x03, 0x0C, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash + 0x02, 0x44, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ] + 0x01, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ^ + 0x03, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, // Code for char _ + 0x01, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ` + 0x03, 0x7C, 0x14, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char a + 0x03, 0x7C, 0x54, 0x6C, 0x00, 0x00, 0x00, 0x00, // Code for char b + 0x03, 0x7C, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, // Code for char c + 0x03, 0x7C, 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, // Code for char d + 0x03, 0x7C, 0x54, 0x54, 0x00, 0x00, 0x00, 0x00, // Code for char e + 0x03, 0x7C, 0x14, 0x04, 0x00, 0x00, 0x00, 0x00, // Code for char f + 0x03, 0x7C, 0x44, 0x74, 0x00, 0x00, 0x00, 0x00, // Code for char g + 0x03, 0x7C, 0x10, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char h + 0x01, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char i + 0x03, 0x40, 0x40, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char j + 0x03, 0x7C, 0x10, 0x6C, 0x00, 0x00, 0x00, 0x00, // Code for char k + 0x03, 0x7C, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, // Code for char l + 0x05, 0x7C, 0x04, 0x38, 0x04, 0x7C, 0x00, 0x00, // Code for char m + 0x03, 0x7C, 0x04, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char n + 0x03, 0x7C, 0x44, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char o + 0x03, 0x7C, 0x14, 0x1C, 0x00, 0x00, 0x00, 0x00, // Code for char p + 0x03, 0x1C, 0x14, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char q + 0x03, 0x7C, 0x14, 0x6C, 0x00, 0x00, 0x00, 0x00, // Code for char r + 0x03, 0x5C, 0x54, 0x74, 0x00, 0x00, 0x00, 0x00, // Code for char s + 0x03, 0x04, 0x7C, 0x04, 0x00, 0x00, 0x00, 0x00, // Code for char t + 0x03, 0x7C, 0x40, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char u + 0x03, 0x3C, 0x40, 0x3C, 0x00, 0x00, 0x00, 0x00, // Code for char v + 0x05, 0x7C, 0x40, 0x30, 0x40, 0x7C, 0x00, 0x00, // Code for char w + 0x03, 0x6C, 0x10, 0x6C, 0x00, 0x00, 0x00, 0x00, // Code for char x + 0x03, 0x5C, 0x50, 0x7C, 0x00, 0x00, 0x00, 0x00, // Code for char y + 0x03, 0x64, 0x54, 0x4C, 0x00, 0x00, 0x00, 0x00, // Code for char z + 0x01, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char { + 0x01, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char | + 0x01, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char } + 0x04, 0x10, 0x08, 0x10, 0x08, 0x00, 0x00, 0x00, // Code for char ~ + 0x03, 0x7E, 0x42, 0x7E, 0x00, 0x00, 0x00, 0x00 // Code for char  + }; + diff --git a/ili9341/ili9341.py b/ili9341/ili9341.py new file mode 100644 index 0000000..5fd9118 --- /dev/null +++ b/ili9341/ili9341.py @@ -0,0 +1,1056 @@ +"""ILI9341 LCD/Touch module.""" +from time import sleep +from math import cos, sin, pi, radians +from sys import implementation +from framebuf import FrameBuffer, RGB565 # type: ignore + + +def color565(r, g, b): + """Return RGB565 color value. + + Args: + r (int): Red value. + g (int): Green value. + b (int): Blue value. + """ + return (r & 0xf8) << 8 | (g & 0xfc) << 3 | b >> 3 + + +class Display(object): + """Serial interface for 16-bit color (5-6-5 RGB) IL9341 display. + + Note: All coordinates are zero based. + """ + + # Command constants from ILI9341 datasheet + NOP = const(0x00) # No-op + SWRESET = const(0x01) # Software reset + RDDID = const(0x04) # Read display ID info + RDDST = const(0x09) # Read display status + SLPIN = const(0x10) # Enter sleep mode + SLPOUT = const(0x11) # Exit sleep mode + PTLON = const(0x12) # Partial mode on + NORON = const(0x13) # Normal display mode on + RDMODE = const(0x0A) # Read display power mode + RDMADCTL = const(0x0B) # Read display MADCTL + RDPIXFMT = const(0x0C) # Read display pixel format + RDIMGFMT = const(0x0D) # Read display image format + RDSELFDIAG = const(0x0F) # Read display self-diagnostic + INVOFF = const(0x20) # Display inversion off + INVON = const(0x21) # Display inversion on + GAMMASET = const(0x26) # Gamma set + DISPLAY_OFF = const(0x28) # Display off + DISPLAY_ON = const(0x29) # Display on + SET_COLUMN = const(0x2A) # Column address set + SET_PAGE = const(0x2B) # Page address set + WRITE_RAM = const(0x2C) # Memory write + READ_RAM = const(0x2E) # Memory read + PTLAR = const(0x30) # Partial area + VSCRDEF = const(0x33) # Vertical scrolling definition + MADCTL = const(0x36) # Memory access control + VSCRSADD = const(0x37) # Vertical scrolling start address + PIXFMT = const(0x3A) # COLMOD: Pixel format set + WRITE_DISPLAY_BRIGHTNESS = const(0x51) # Brightness hardware dependent! + READ_DISPLAY_BRIGHTNESS = const(0x52) + WRITE_CTRL_DISPLAY = const(0x53) + READ_CTRL_DISPLAY = const(0x54) + WRITE_CABC = const(0x55) # Write Content Adaptive Brightness Control + READ_CABC = const(0x56) # Read Content Adaptive Brightness Control + WRITE_CABC_MINIMUM = const(0x5E) # Write CABC Minimum Brightness + READ_CABC_MINIMUM = const(0x5F) # Read CABC Minimum Brightness + FRMCTR1 = const(0xB1) # Frame rate control (In normal mode/full colors) + FRMCTR2 = const(0xB2) # Frame rate control (In idle mode/8 colors) + FRMCTR3 = const(0xB3) # Frame rate control (In partial mode/full colors) + INVCTR = const(0xB4) # Display inversion control + DFUNCTR = const(0xB6) # Display function control + PWCTR1 = const(0xC0) # Power control 1 + PWCTR2 = const(0xC1) # Power control 2 + PWCTRA = const(0xCB) # Power control A + PWCTRB = const(0xCF) # Power control B + VMCTR1 = const(0xC5) # VCOM control 1 + VMCTR2 = const(0xC7) # VCOM control 2 + RDID1 = const(0xDA) # Read ID 1 + RDID2 = const(0xDB) # Read ID 2 + RDID3 = const(0xDC) # Read ID 3 + RDID4 = const(0xDD) # Read ID 4 + GMCTRP1 = const(0xE0) # Positive gamma correction + GMCTRN1 = const(0xE1) # Negative gamma correction + DTCA = const(0xE8) # Driver timing control A + DTCB = const(0xEA) # Driver timing control B + POSC = const(0xED) # Power on sequence control + ENABLE3G = const(0xF2) # Enable 3 gamma control + PUMPRC = const(0xF7) # Pump ratio control + + ROTATE = { + 0: 0x88, + 90: 0xE8, + 180: 0x48, + 270: 0x28 + } + + def __init__(self, spi, cs, dc, rst, + width=240, height=320, rotation=0): + """Initialize OLED. + + Args: + spi (Class Spi): SPI interface for OLED + cs (Class Pin): Chip select pin + dc (Class Pin): Data/Command pin + rst (Class Pin): Reset pin + width (Optional int): Screen width (default 240) + height (Optional int): Screen height (default 320) + rotation (Optional int): Rotation must be 0 default, 90. 180 or 270 + """ + self.spi = spi + self.cs = cs + self.dc = dc + self.rst = rst + self.width = width + self.height = height + if rotation not in self.ROTATE.keys(): + raise RuntimeError('Rotation must be 0, 90, 180 or 270.') + else: + self.rotation = self.ROTATE[rotation] + + # Initialize GPIO pins and set implementation specific methods + if implementation.name == 'circuitpython': + self.cs.switch_to_output(value=True) + self.dc.switch_to_output(value=False) + self.rst.switch_to_output(value=True) + self.reset = self.reset_cpy + self.write_cmd = self.write_cmd_cpy + self.write_data = self.write_data_cpy + else: + self.cs.init(self.cs.OUT, value=1) + self.dc.init(self.dc.OUT, value=0) + self.rst.init(self.rst.OUT, value=1) + self.reset = self.reset_mpy + self.write_cmd = self.write_cmd_mpy + self.write_data = self.write_data_mpy + self.reset() + # Send initialization commands + self.write_cmd(self.SWRESET) # Software reset + sleep(.1) + self.write_cmd(self.PWCTRB, 0x00, 0xC1, 0x30) # Pwr ctrl B + self.write_cmd(self.POSC, 0x64, 0x03, 0x12, 0x81) # Pwr on seq. ctrl + self.write_cmd(self.DTCA, 0x85, 0x00, 0x78) # Driver timing ctrl A + self.write_cmd(self.PWCTRA, 0x39, 0x2C, 0x00, 0x34, 0x02) # Pwr ctrl A + self.write_cmd(self.PUMPRC, 0x20) # Pump ratio control + self.write_cmd(self.DTCB, 0x00, 0x00) # Driver timing ctrl B + self.write_cmd(self.PWCTR1, 0x23) # Pwr ctrl 1 + self.write_cmd(self.PWCTR2, 0x10) # Pwr ctrl 2 + self.write_cmd(self.VMCTR1, 0x3E, 0x28) # VCOM ctrl 1 + self.write_cmd(self.VMCTR2, 0x86) # VCOM ctrl 2 + self.write_cmd(self.MADCTL, self.rotation) # Memory access ctrl + self.write_cmd(self.VSCRSADD, 0x00) # Vertical scrolling start address + self.write_cmd(self.PIXFMT, 0x55) # COLMOD: Pixel format + self.write_cmd(self.FRMCTR1, 0x00, 0x18) # Frame rate ctrl + self.write_cmd(self.DFUNCTR, 0x08, 0x82, 0x27) + self.write_cmd(self.ENABLE3G, 0x00) # Enable 3 gamma ctrl + self.write_cmd(self.GAMMASET, 0x01) # Gamma curve selected + self.write_cmd(self.GMCTRP1, 0x0F, 0x31, 0x2B, 0x0C, 0x0E, 0x08, 0x4E, + 0xF1, 0x37, 0x07, 0x10, 0x03, 0x0E, 0x09, 0x00) + self.write_cmd(self.GMCTRN1, 0x00, 0x0E, 0x14, 0x03, 0x11, 0x07, 0x31, + 0xC1, 0x48, 0x08, 0x0F, 0x0C, 0x31, 0x36, 0x0F) + self.write_cmd(self.SLPOUT) # Exit sleep + sleep(.1) + self.write_cmd(self.DISPLAY_ON) # Display on + sleep(.1) + self.clear() + + def block(self, x0, y0, x1, y1, data): + """Write a block of data to display. + + Args: + x0 (int): Starting X position. + y0 (int): Starting Y position. + x1 (int): Ending X position. + y1 (int): Ending Y position. + data (bytes): Data buffer to write. + """ + self.write_cmd(self.SET_COLUMN, + x0 >> 8, x0 & 0xff, x1 >> 8, x1 & 0xff) + self.write_cmd(self.SET_PAGE, + y0 >> 8, y0 & 0xff, y1 >> 8, y1 & 0xff) + self.write_cmd(self.WRITE_RAM) + self.write_data(data) + + def cleanup(self): + """Clean up resources.""" + self.clear() + self.display_off() + self.spi.deinit() + print('display off') + + def clear(self, color=0, hlines=8): + """Clear display. + + Args: + color (Optional int): RGB565 color value (Default: 0 = Black). + hlines (Optional int): # of horizontal lines per chunk (Default: 8) + Note: + hlines was introduced to deal with memory allocation on some + boards. Smaller values allocate less memory but take longer + to execute. hlines must be a factor of the display height. + For example, for a 240 pixel height, valid values for hline + would be 1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 160. + Higher values may result in memory allocation errors. + """ + w = self.width + h = self.height + assert hlines > 0 and h % hlines == 0, ( + "hlines must be a non-zero factor of height.") + # Clear display + if color: + line = color.to_bytes(2, 'big') * (w * hlines) + else: + line = bytearray(w * 2 * hlines) + for y in range(0, h, hlines): + self.block(0, y, w - 1, y + hlines - 1, line) + + def display_off(self): + """Turn display off.""" + self.write_cmd(self.DISPLAY_OFF) + + def display_on(self): + """Turn display on.""" + self.write_cmd(self.DISPLAY_ON) + + def draw_circle(self, x0, y0, r, color): + """Draw a circle. + + Args: + x0 (int): X coordinate of center point. + y0 (int): Y coordinate of center point. + r (int): Radius. + color (int): RGB565 color value. + """ + f = 1 - r + dx = 1 + dy = -r - r + x = 0 + y = r + self.draw_pixel(x0, y0 + r, color) + self.draw_pixel(x0, y0 - r, color) + self.draw_pixel(x0 + r, y0, color) + self.draw_pixel(x0 - r, y0, color) + while x < y: + if f >= 0: + y -= 1 + dy += 2 + f += dy + x += 1 + dx += 2 + f += dx + self.draw_pixel(x0 + x, y0 + y, color) + self.draw_pixel(x0 - x, y0 + y, color) + self.draw_pixel(x0 + x, y0 - y, color) + self.draw_pixel(x0 - x, y0 - y, color) + self.draw_pixel(x0 + y, y0 + x, color) + self.draw_pixel(x0 - y, y0 + x, color) + self.draw_pixel(x0 + y, y0 - x, color) + self.draw_pixel(x0 - y, y0 - x, color) + + def draw_ellipse(self, x0, y0, a, b, color): + """Draw an ellipse. + + Args: + x0, y0 (int): Coordinates of center point. + a (int): Semi axis horizontal. + b (int): Semi axis vertical. + color (int): RGB565 color value. + Note: + The center point is the center of the x0,y0 pixel. + Since pixels are not divisible, the axes are integer rounded + up to complete on a full pixel. Therefore the major and + minor axes are increased by 1. + """ + a2 = a * a + b2 = b * b + twoa2 = a2 + a2 + twob2 = b2 + b2 + x = 0 + y = b + px = 0 + py = twoa2 * y + # Plot initial points + self.draw_pixel(x0 + x, y0 + y, color) + self.draw_pixel(x0 - x, y0 + y, color) + self.draw_pixel(x0 + x, y0 - y, color) + self.draw_pixel(x0 - x, y0 - y, color) + # Region 1 + p = round(b2 - (a2 * b) + (0.25 * a2)) + while px < py: + x += 1 + px += twob2 + if p < 0: + p += b2 + px + else: + y -= 1 + py -= twoa2 + p += b2 + px - py + self.draw_pixel(x0 + x, y0 + y, color) + self.draw_pixel(x0 - x, y0 + y, color) + self.draw_pixel(x0 + x, y0 - y, color) + self.draw_pixel(x0 - x, y0 - y, color) + # Region 2 + p = round(b2 * (x + 0.5) * (x + 0.5) + + a2 * (y - 1) * (y - 1) - a2 * b2) + while y > 0: + y -= 1 + py -= twoa2 + if p > 0: + p += a2 - py + else: + x += 1 + px += twob2 + p += a2 - py + px + self.draw_pixel(x0 + x, y0 + y, color) + self.draw_pixel(x0 - x, y0 + y, color) + self.draw_pixel(x0 + x, y0 - y, color) + self.draw_pixel(x0 - x, y0 - y, color) + + def draw_hline(self, x, y, w, color): + """Draw a horizontal line. + + Args: + x (int): Starting X position. + y (int): Starting Y position. + w (int): Width of line. + color (int): RGB565 color value. + """ + if self.is_off_grid(x, y, x + w - 1, y): + return + line = color.to_bytes(2, 'big') * w + self.block(x, y, x + w - 1, y, line) + + def draw_image(self, path, x=0, y=0, w=320, h=240): + """Draw image from flash. + + Args: + path (string): Image file path. + x (int): X coordinate of image left. Default is 0. + y (int): Y coordinate of image top. Default is 0. + w (int): Width of image. Default is 320. + h (int): Height of image. Default is 240. + """ + x2 = x + w - 1 + y2 = y + h - 1 + if self.is_off_grid(x, y, x2, y2): + return + with open(path, "rb") as f: + chunk_height = 1024 // w + chunk_count, remainder = divmod(h, chunk_height) + chunk_size = chunk_height * w * 2 + chunk_y = y + if chunk_count: + for c in range(0, chunk_count): + buf = f.read(chunk_size) + self.block(x, chunk_y, + x2, chunk_y + chunk_height - 1, + buf) + chunk_y += chunk_height + if remainder: + buf = f.read(remainder * w * 2) + self.block(x, chunk_y, + x2, chunk_y + remainder - 1, + buf) + + def draw_letter(self, x, y, letter, font, color, background=0, + landscape=False, rotate_180=False): + """Draw a letter. + + Args: + x (int): Starting X position. + y (int): Starting Y position. + letter (string): Letter to draw. + font (XglcdFont object): Font. + color (int): RGB565 color value. + background (int): RGB565 background color (default: black) + landscape (bool): Orientation (default: False = portrait) + rotate_180 (bool): Rotate text by 180 degrees + """ + buf, w, h = font.get_letter(letter, color, background, landscape) + if rotate_180: + # Manually rotate the buffer by 180 degrees + # ensure bytes pairs for each pixel retain color565 + new_buf = bytearray(len(buf)) + num_pixels = len(buf) // 2 + for i in range(num_pixels): + # The index for the new buffer's byte pair + new_idx = (num_pixels - 1 - i) * 2 + # The index for the original buffer's byte pair + old_idx = i * 2 + # Swap the pixels + new_buf[new_idx], new_buf[new_idx + 1] = buf[old_idx], buf[old_idx + 1] + buf = new_buf + + # Check for errors (Font could be missing specified letter) + if w == 0: + return w, h + + if landscape: + y -= w + if self.is_off_grid(x, y, x + h - 1, y + w - 1): + return 0, 0 + self.block(x, y, + x + h - 1, y + w - 1, + buf) + else: + if self.is_off_grid(x, y, x + w - 1, y + h - 1): + return 0, 0 + self.block(x, y, + x + w - 1, y + h - 1, + buf) + return w, h + + def draw_line(self, x1, y1, x2, y2, color): + """Draw a line using Bresenham's algorithm. + + Args: + x1, y1 (int): Starting coordinates of the line + x2, y2 (int): Ending coordinates of the line + color (int): RGB565 color value. + """ + # Check for horizontal line + if y1 == y2: + if x1 > x2: + x1, x2 = x2, x1 + self.draw_hline(x1, y1, x2 - x1 + 1, color) + return + # Check for vertical line + if x1 == x2: + if y1 > y2: + y1, y2 = y2, y1 + self.draw_vline(x1, y1, y2 - y1 + 1, color) + return + # Confirm coordinates in boundary + if self.is_off_grid(min(x1, x2), min(y1, y2), + max(x1, x2), max(y1, y2)): + return + # Changes in x, y + dx = x2 - x1 + dy = y2 - y1 + # Determine how steep the line is + is_steep = abs(dy) > abs(dx) + # Rotate line + if is_steep: + x1, y1 = y1, x1 + x2, y2 = y2, x2 + # Swap start and end points if necessary + if x1 > x2: + x1, x2 = x2, x1 + y1, y2 = y2, y1 + # Recalculate differentials + dx = x2 - x1 + dy = y2 - y1 + # Calculate error + error = dx >> 1 + ystep = 1 if y1 < y2 else -1 + y = y1 + for x in range(x1, x2 + 1): + # Had to reverse HW ???? + if not is_steep: + self.draw_pixel(x, y, color) + else: + self.draw_pixel(y, x, color) + error -= abs(dy) + if error < 0: + y += ystep + error += dx + + def draw_lines(self, coords, color): + """Draw multiple lines. + + Args: + coords ([[int, int],...]): Line coordinate X, Y pairs + color (int): RGB565 color value. + """ + # Starting point + x1, y1 = coords[0] + # Iterate through coordinates + for i in range(1, len(coords)): + x2, y2 = coords[i] + self.draw_line(x1, y1, x2, y2, color) + x1, y1 = x2, y2 + + def draw_pixel(self, x, y, color): + """Draw a single pixel. + + Args: + x (int): X position. + y (int): Y position. + color (int): RGB565 color value. + """ + if self.is_off_grid(x, y, x, y): + return + self.block(x, y, x, y, color.to_bytes(2, 'big')) + + def draw_polygon(self, sides, x0, y0, r, color, rotate=0): + """Draw an n-sided regular polygon. + + Args: + sides (int): Number of polygon sides. + x0, y0 (int): Coordinates of center point. + r (int): Radius. + color (int): RGB565 color value. + rotate (Optional float): Rotation in degrees relative to origin. + Note: + The center point is the center of the x0,y0 pixel. + Since pixels are not divisible, the radius is integer rounded + up to complete on a full pixel. Therefore diameter = 2 x r + 1. + """ + coords = [] + theta = radians(rotate) + n = sides + 1 + for s in range(n): + t = 2.0 * pi * s / sides + theta + coords.append([int(r * cos(t) + x0), int(r * sin(t) + y0)]) + + # Cast to python float first to fix rounding errors + self.draw_lines(coords, color=color) + + def draw_rectangle(self, x, y, w, h, color): + """Draw a rectangle. + + Args: + x (int): Starting X position. + y (int): Starting Y position. + w (int): Width of rectangle. + h (int): Height of rectangle. + color (int): RGB565 color value. + """ + x2 = x + w - 1 + y2 = y + h - 1 + self.draw_hline(x, y, w, color) + self.draw_hline(x, y2, w, color) + self.draw_vline(x, y, h, color) + self.draw_vline(x2, y, h, color) + + def draw_sprite(self, buf, x, y, w, h): + """Draw a sprite (optimized for horizontal drawing). + + Args: + buf (bytearray): Buffer to draw. + x (int): Starting X position. + y (int): Starting Y position. + w (int): Width of drawing. + h (int): Height of drawing. + """ + x2 = x + w - 1 + y2 = y + h - 1 + if self.is_off_grid(x, y, x2, y2): + return + self.block(x, y, x2, y2, buf) + + def draw_text(self, x, y, text, font, color, background=0, + landscape=False, rotate_180=False, spacing=1): + """Draw text. + + Args: + x (int): Starting X position + y (int): Starting Y position + text (string): Text to draw + font (XglcdFont object): Font + color (int): RGB565 color value + background (int): RGB565 background color (default: black) + landscape (bool): Orientation (default: False = portrait) + rotate_180 (bool): Rotate text by 180 degrees + spacing (int): Pixels between letters (default: 1) + """ + iterable_text = reversed(text) if rotate_180 else text + for letter in iterable_text: + # Get letter array and letter dimensions + w, h = self.draw_letter(x, y, letter, font, color, background, + landscape, rotate_180) + # Stop on error + if w == 0 or h == 0: + print('Invalid width {0} or height {1}'.format(w, h)) + return + + if landscape: + # Fill in spacing + if spacing: + self.fill_hrect(x, y - w - spacing, h, spacing, background) + # Position y for next letter + y -= (w + spacing) + else: + # Fill in spacing + if spacing: + self.fill_hrect(x + w, y, spacing, h, background) + # Position x for next letter + x += (w + spacing) + + # # Fill in spacing + # if spacing: + # self.fill_vrect(x + w, y, spacing, h, background) + # # Position x for next letter + # x += w + spacing + + def draw_text8x8(self, x, y, text, color, background=0, + rotate=0): + """Draw text using built-in MicroPython 8x8 bit font. + + Args: + x (int): Starting X position. + y (int): Starting Y position. + text (string): Text to draw. + color (int): RGB565 color value. + background (int): RGB565 background color (default: black). + rotate(int): 0, 90, 180, 270 + """ + w = len(text) * 8 + h = 8 + # Confirm coordinates in boundary + if self.is_off_grid(x, y, x + 7, y + 7): + return + # Rearrange color + r = (color & 0xF800) >> 8 + g = (color & 0x07E0) >> 3 + b = (color & 0x1F) << 3 + buf = bytearray(w * 16) + fbuf = FrameBuffer(buf, w, h, RGB565) + if background != 0: + bg_r = (background & 0xF800) >> 8 + bg_g = (background & 0x07E0) >> 3 + bg_b = (background & 0x1F) << 3 + fbuf.fill(color565(bg_b, bg_r, bg_g)) + fbuf.text(text, 0, 0, color565(b, r, g)) + if rotate == 0: + self.block(x, y, x + w - 1, y + (h - 1), buf) + elif rotate == 90: + buf2 = bytearray(w * 16) + fbuf2 = FrameBuffer(buf2, h, w, RGB565) + for y1 in range(h): + for x1 in range(w): + fbuf2.pixel(y1, x1, + fbuf.pixel(x1, (h - 1) - y1)) + self.block(x, y, x + (h - 1), y + w - 1, buf2) + elif rotate == 180: + buf2 = bytearray(w * 16) + fbuf2 = FrameBuffer(buf2, w, h, RGB565) + for y1 in range(h): + for x1 in range(w): + fbuf2.pixel(x1, y1, + fbuf.pixel((w - 1) - x1, (h - 1) - y1)) + self.block(x, y, x + w - 1, y + (h - 1), buf2) + elif rotate == 270: + buf2 = bytearray(w * 16) + fbuf2 = FrameBuffer(buf2, h, w, RGB565) + for y1 in range(h): + for x1 in range(w): + fbuf2.pixel(y1, x1, + fbuf.pixel((w - 1) - x1, y1)) + self.block(x, y, x + (h - 1), y + w - 1, buf2) + + def draw_vline(self, x, y, h, color): + """Draw a vertical line. + + Args: + x (int): Starting X position. + y (int): Starting Y position. + h (int): Height of line. + color (int): RGB565 color value. + """ + # Confirm coordinates in boundary + if self.is_off_grid(x, y, x, y + h - 1): + return + line = color.to_bytes(2, 'big') * h + self.block(x, y, x, y + h - 1, line) + + def fill_circle(self, x0, y0, r, color): + """Draw a filled circle. + + Args: + x0 (int): X coordinate of center point. + y0 (int): Y coordinate of center point. + r (int): Radius. + color (int): RGB565 color value. + """ + f = 1 - r + dx = 1 + dy = -r - r + x = 0 + y = r + self.draw_vline(x0, y0 - r, 2 * r + 1, color) + while x < y: + if f >= 0: + y -= 1 + dy += 2 + f += dy + x += 1 + dx += 2 + f += dx + self.draw_vline(x0 + x, y0 - y, 2 * y + 1, color) + self.draw_vline(x0 - x, y0 - y, 2 * y + 1, color) + self.draw_vline(x0 - y, y0 - x, 2 * x + 1, color) + self.draw_vline(x0 + y, y0 - x, 2 * x + 1, color) + + def fill_ellipse(self, x0, y0, a, b, color): + """Draw a filled ellipse. + + Args: + x0, y0 (int): Coordinates of center point. + a (int): Semi axis horizontal. + b (int): Semi axis vertical. + color (int): RGB565 color value. + Note: + The center point is the center of the x0,y0 pixel. + Since pixels are not divisible, the axes are integer rounded + up to complete on a full pixel. Therefore the major and + minor axes are increased by 1. + """ + a2 = a * a + b2 = b * b + twoa2 = a2 + a2 + twob2 = b2 + b2 + x = 0 + y = b + px = 0 + py = twoa2 * y + # Plot initial points + self.draw_line(x0, y0 - y, x0, y0 + y, color) + # Region 1 + p = round(b2 - (a2 * b) + (0.25 * a2)) + while px < py: + x += 1 + px += twob2 + if p < 0: + p += b2 + px + else: + y -= 1 + py -= twoa2 + p += b2 + px - py + self.draw_line(x0 + x, y0 - y, x0 + x, y0 + y, color) + self.draw_line(x0 - x, y0 - y, x0 - x, y0 + y, color) + # Region 2 + p = round(b2 * (x + 0.5) * (x + 0.5) + + a2 * (y - 1) * (y - 1) - a2 * b2) + while y > 0: + y -= 1 + py -= twoa2 + if p > 0: + p += a2 - py + else: + x += 1 + px += twob2 + p += a2 - py + px + self.draw_line(x0 + x, y0 - y, x0 + x, y0 + y, color) + self.draw_line(x0 - x, y0 - y, x0 - x, y0 + y, color) + + def fill_hrect(self, x, y, w, h, color): + """Draw a filled rectangle (optimized for horizontal drawing). + + Args: + x (int): Starting X position. + y (int): Starting Y position. + w (int): Width of rectangle. + h (int): Height of rectangle. + color (int): RGB565 color value. + """ + if self.is_off_grid(x, y, x + w - 1, y + h - 1): + return + chunk_height = 1024 // w + chunk_count, remainder = divmod(h, chunk_height) + chunk_size = chunk_height * w + chunk_y = y + if chunk_count: + buf = color.to_bytes(2, 'big') * chunk_size + for c in range(0, chunk_count): + self.block(x, chunk_y, + x + w - 1, chunk_y + chunk_height - 1, + buf) + chunk_y += chunk_height + + if remainder: + buf = color.to_bytes(2, 'big') * remainder * w + self.block(x, chunk_y, + x + w - 1, chunk_y + remainder - 1, + buf) + + def fill_rectangle(self, x, y, w, h, color): + """Draw a filled rectangle. + + Args: + x (int): Starting X position. + y (int): Starting Y position. + w (int): Width of rectangle. + h (int): Height of rectangle. + color (int): RGB565 color value. + """ + if self.is_off_grid(x, y, x + w - 1, y + h - 1): + return + if w > h: + self.fill_hrect(x, y, w, h, color) + else: + self.fill_vrect(x, y, w, h, color) + + def fill_polygon(self, sides, x0, y0, r, color, rotate=0): + """Draw a filled n-sided regular polygon. + + Args: + sides (int): Number of polygon sides. + x0, y0 (int): Coordinates of center point. + r (int): Radius. + color (int): RGB565 color value. + rotate (Optional float): Rotation in degrees relative to origin. + Note: + The center point is the center of the x0,y0 pixel. + Since pixels are not divisible, the radius is integer rounded + up to complete on a full pixel. Therefore diameter = 2 x r + 1. + """ + # Determine side coordinates + coords = [] + theta = radians(rotate) + n = sides + 1 + for s in range(n): + t = 2.0 * pi * s / sides + theta + coords.append([int(r * cos(t) + x0), int(r * sin(t) + y0)]) + # Starting point + x1, y1 = coords[0] + # Minimum Maximum X dict + xdict = {y1: [x1, x1]} + # Iterate through coordinates + for row in coords[1:]: + x2, y2 = row + xprev, yprev = x2, y2 + # Calculate perimeter + # Check for horizontal side + if y1 == y2: + if x1 > x2: + x1, x2 = x2, x1 + if y1 in xdict: + xdict[y1] = [min(x1, xdict[y1][0]), max(x2, xdict[y1][1])] + else: + xdict[y1] = [x1, x2] + x1, y1 = xprev, yprev + continue + # Non horizontal side + # Changes in x, y + dx = x2 - x1 + dy = y2 - y1 + # Determine how steep the line is + is_steep = abs(dy) > abs(dx) + # Rotate line + if is_steep: + x1, y1 = y1, x1 + x2, y2 = y2, x2 + # Swap start and end points if necessary + if x1 > x2: + x1, x2 = x2, x1 + y1, y2 = y2, y1 + # Recalculate differentials + dx = x2 - x1 + dy = y2 - y1 + # Calculate error + error = dx >> 1 + ystep = 1 if y1 < y2 else -1 + y = y1 + # Calcualte minimum and maximum x values + for x in range(x1, x2 + 1): + if is_steep: + if x in xdict: + xdict[x] = [min(y, xdict[x][0]), max(y, xdict[x][1])] + else: + xdict[x] = [y, y] + else: + if y in xdict: + xdict[y] = [min(x, xdict[y][0]), max(x, xdict[y][1])] + else: + xdict[y] = [x, x] + error -= abs(dy) + if error < 0: + y += ystep + error += dx + x1, y1 = xprev, yprev + # Fill polygon + for y, x in xdict.items(): + self.draw_hline(x[0], y, x[1] - x[0] + 2, color) + + def fill_vrect(self, x, y, w, h, color): + """Draw a filled rectangle (optimized for vertical drawing). + + Args: + x (int): Starting X position. + y (int): Starting Y position. + w (int): Width of rectangle. + h (int): Height of rectangle. + color (int): RGB565 color value. + """ + if self.is_off_grid(x, y, x + w - 1, y + h - 1): + return + chunk_width = 1024 // h + chunk_count, remainder = divmod(w, chunk_width) + chunk_size = chunk_width * h + chunk_x = x + if chunk_count: + buf = color.to_bytes(2, 'big') * chunk_size + for c in range(0, chunk_count): + self.block(chunk_x, y, + chunk_x + chunk_width - 1, y + h - 1, + buf) + chunk_x += chunk_width + + if remainder: + buf = color.to_bytes(2, 'big') * remainder * h + self.block(chunk_x, y, + chunk_x + remainder - 1, y + h - 1, + buf) + + def is_off_grid(self, xmin, ymin, xmax, ymax): + """Check if coordinates extend past display boundaries. + + Args: + xmin (int): Minimum horizontal pixel. + ymin (int): Minimum vertical pixel. + xmax (int): Maximum horizontal pixel. + ymax (int): Maximum vertical pixel. + Returns: + boolean: False = Coordinates OK, True = Error. + """ + if xmin < 0: + print('x-coordinate: {0} below minimum of 0.'.format(xmin)) + return True + if ymin < 0: + print('y-coordinate: {0} below minimum of 0.'.format(ymin)) + return True + if xmax >= self.width: + print('x-coordinate: {0} above maximum of {1}.'.format( + xmax, self.width - 1)) + return True + if ymax >= self.height: + print('y-coordinate: {0} above maximum of {1}.'.format( + ymax, self.height - 1)) + return True + return False + + def load_sprite(self, path, w, h): + """Load sprite image. + + Args: + path (string): Image file path. + w (int): Width of image. + h (int): Height of image. + Notes: + w x h cannot exceed 2048 + """ + buf_size = w * h * 2 + with open(path, "rb") as f: + return f.read(buf_size) + + def reset_cpy(self): + """Perform reset: Low=initialization, High=normal operation. + + Notes: CircuitPython implemntation + """ + self.rst.value = False + sleep(.05) + self.rst.value = True + sleep(.05) + + def reset_mpy(self): + """Perform reset: Low=initialization, High=normal operation. + + Notes: MicroPython implemntation + """ + self.rst(0) + sleep(.05) + self.rst(1) + sleep(.05) + + def scroll(self, y): + """Scroll display vertically. + + Args: + y (int): Number of pixels to scroll display. + """ + self.write_cmd(self.VSCRSADD, y >> 8, y & 0xFF) + + def set_scroll(self, top, bottom): + """Set the height of the top and bottom scroll margins. + + Args: + top (int): Height of top scroll margin + bottom (int): Height of bottom scroll margin + """ + if top + bottom <= self.height: + middle = self.height - (top + bottom) + print(top, middle, bottom) + self.write_cmd(self.VSCRDEF, + top >> 8, + top & 0xFF, + middle >> 8, + middle & 0xFF, + bottom >> 8, + bottom & 0xFF) + + def sleep(self, enable=True): + """Enters or exits sleep mode. + + Args: + enable (bool): True (default)=Enter sleep mode, False=Exit sleep + """ + if enable: + self.write_cmd(self.SLPIN) + else: + self.write_cmd(self.SLPOUT) + + def write_cmd_mpy(self, command, *args): + """Write command to OLED (MicroPython). + + Args: + command (byte): ILI9341 command code. + *args (optional bytes): Data to transmit. + """ + self.dc(0) + self.cs(0) + self.spi.write(bytearray([command])) + self.cs(1) + # Handle any passed data + if len(args) > 0: + self.write_data(bytearray(args)) + + def write_cmd_cpy(self, command, *args): + """Write command to OLED (CircuitPython). + + Args: + command (byte): ILI9341 command code. + *args (optional bytes): Data to transmit. + """ + self.dc.value = False + self.cs.value = False + # Confirm SPI locked before writing + while not self.spi.try_lock(): + pass + self.spi.write(bytearray([command])) + self.spi.unlock() + self.cs.value = True + # Handle any passed data + if len(args) > 0: + self.write_data(bytearray(args)) + + def write_data_mpy(self, data): + """Write data to OLED (MicroPython). + + Args: + data (bytes): Data to transmit. + """ + self.dc(1) + self.cs(0) + self.spi.write(data) + self.cs(1) + + def write_data_cpy(self, data): + """Write data to OLED (CircuitPython). + + Args: + data (bytes): Data to transmit. + """ + self.dc.value = True + self.cs.value = False + # Confirm SPI locked before writing + while not self.spi.try_lock(): + pass + self.spi.write(data) + self.spi.unlock() + self.cs.value = True diff --git a/ili9341/images/MicroPython128x128.raw b/ili9341/images/MicroPython128x128.raw new file mode 100644 index 0000000..1a53191 Binary files /dev/null and b/ili9341/images/MicroPython128x128.raw differ diff --git a/ili9341/images/Python41x49.raw b/ili9341/images/Python41x49.raw new file mode 100644 index 0000000..7ca0cd4 Binary files /dev/null and b/ili9341/images/Python41x49.raw differ diff --git a/ili9341/images/RaspberryPiWB128x128.raw b/ili9341/images/RaspberryPiWB128x128.raw new file mode 100644 index 0000000..11e9de9 Binary files /dev/null and b/ili9341/images/RaspberryPiWB128x128.raw differ diff --git a/ili9341/images/Rototron128x26.raw b/ili9341/images/Rototron128x26.raw new file mode 100644 index 0000000..1c61881 Binary files /dev/null and b/ili9341/images/Rototron128x26.raw differ diff --git a/ili9341/images/Tabby128x128.raw b/ili9341/images/Tabby128x128.raw new file mode 100644 index 0000000..a259401 --- /dev/null +++ b/ili9341/images/Tabby128x128.raw @@ -0,0 +1,138 @@ +”p”p”p”p”p”o”pœœœœ”p”p”p”o”O”o”p”p”p”œœ°œ±œ±œ±œ±œ±œ°œ°œ±œ±œ°œ°œ±œ”pŒ/Œ/ŒO”pœ±œ±œ±œ±œ±œ±œ±œ±œ±œœ”p”pŒOŒ/Œ/Œ/”O”O”p”pœœœœœœœpœpœpœpœœœp”p”OŒ/Œ/”O”pœpœœœœœœœp”p”O”O”O”oœpœpœœ°œ°œ±œ±œœœœœœœ¤°¤±¤Ñ¤Ñ¬Ñ¬ò´ñ´Ð´´¯¬ò­­­µ2µ3µ3µ3µ2µ”O”O”O”O”O”O”pœœœ”p”p”p”o”o”O”p”p”p”p”pœœœ±œ±œ±œ±œ±œ°œ°œ°œ°œ°œ°œ±””PŒ/Œ/”Pœœ±œ±œ±œ±œ±œ±œ±œ‘œ”p”p”p”pŒOŒ/Œ/”O”O”o”p”pœœ°œ±œ±œ°œœœœœœœœ”p”OŒ/Œ/”O”pœpœœœœœœœp”p”o”Oœoœpœpœpœœ°¤°¤°œ±œ°œœœœœ¤°¤±¤Ñ¬Ñ¬ñ´ñµ´Ð´Ž´M´¯­­µµµ2µ3µ3µ3µ3µŒOŒO”O”O”O”O”o”p”p”p”p”p”p”o”O”p”p”p”p”p”pœœœ°œ±œ±œ±œ±œ°œ°œ°œ°œ±œ°œ””pŒO”P”pœ±œ±œ±œ±œœ±œ±œ””p”p”p”p”pŒ/Œ/Œ/”O”o”p”p”pœœ±¤Ñ¤Ñœ±œœœœœœœœ”p”OŒO”O”O”pœpœœœœ±œœœpœpœpœpœpœpœœœ±œ±¤±¤±¤±œ°œœœœœ°¤°¬Ñµ¼ð¼¯¼ŽÄ¯¼Ž´,´ ´°µ3µµµ2µ3µ3µ3µ3µ3µŒ/ŒO”O”O”O”O”O”o”p”p”p”p”p”O”o”pœœ”pœœœœ°œ°œ±œ±œ±œ±œ°œœœ°œ°œœ””p”O”pœœ±œ±œ±œ±œ±œ±œ””p”P”p”p”p”p”O”O”O”o”p”p”pœœ±¤Ñ¤Ñ¤Ñœ±œ°œœœœœœœp”p”P”O”O”p”pœpœœœœ±œœœœpœpœœœœœœ±¤±¤±¤±œ±œ°œ°œœ¤°¬Ð´Ð¼Ï¼Ž´,«ë«ë«ë«ë£©«ª´¯µ3µ2µ2µ2µ3µ3µ3µ3µ2­Œ/”O”o”p”p”p”O”o”pœœ”p”o”o”pœœœœœœœ±œ±œ±œ±œ±œ±œ±œ°œœ°œ°œ°œœ”p”p”p”pœœ±œ±œ±œ±œ±œ±œ”p”p”p”p”p”p”p”p”O”O”p”p”p”pœœ±¤Ñ¤Ñ¤Ñœ±œ±œœpœpœpœœœp”p”p”P”p”pœpœœœœ±œ±œ±œœœœœœœœ¤°¤±¤±¤±¤±œ°œ¤°¬Ñ´Ð¼ð¼®´M´,«ë«Ê«ª«ª£h›G›'›'´Mµ3µ3µ3µ3µ3µ3µ3µ2µ¬òŒ/”O”p”p”p”o”O”O”pœ”p”p”p”pœœœœœœœ°œ±œ±œ±œ±œ±œ±œ±œ°œ°œ°œ±œœœœ”p”p”œ±œ±œ‘œ‘œ±œ±œ±œ”p”p”pœœœ”p”p”p”p”p”p”pœœ‘œ±¤±¤±œ±œ±œ±œœœpœœœœ”p”p”pœpœpœœœœœ±œ±œ±œœœœœœœœ°œ±¤±¤±¤±¤±¤°¬Ð¼ðÄϼm¼M´ ´ ¬ «Ê«Ê«ª£‰£h›'’æ’ū뽵3µ3µ3µ3µ3µ2µ­¬ñŒ/”o”p”p”p”o”O”O”p”p”p”p”pœœœœ”pœœœ°œ±œ±œÑœ±œ±¤°¤°œ±œ°œ±œ±œ°œœœ”p”œ±œ±œ±œ‘œ±œ±œ±œ±œ”p”pœœœ‘œœ””p”pœpœœœœ‘œ±¤±¤±¤±œ±œ±œ°œœœœ±œ±œ±œœpœpœœœœœœœ±œ±œ±œ±œœœœœœ°œ°œ±œ±¤°¤Ñ¤°¬¼Ž¼m´ ³ë³ë«©«Ê«ë«‰£h£ˆ£h£G£G’æ’Å£ªÄðµ3µ3µ3µ3µ2µ­¬ò¬ÑŒO”pœœ””p”p”p”p”pœœœœœœœœœœ±œ±œÑœÑ¤Ñœ±œ±¤¤œ°œ±œ±œ±œ°œ°œ””pœœ±œ±œ±œ°œ±œ±œ±œ±œœœœœ‘œ±œ±œœ”pœœœœœœ±œ±¤Ñ¤Ñ¤±¤±œ±œ°œœœ±œ±œ±œ±œœœœœœœœœœ±œ±œ±œ±œœœœœœ°œ°œ°œ°¤±¬Ñ´´M´ «ë«©«©«©£g£G£h£G£&£G£h£G››’æ›H¼¯½2µ3µ2µ2µ­¬ò¬ñ¤Ñ”P”pœœœœ”p”p”pœœœ°œœœœœœ°œ±œ±œ±œÑ¤Ñ¤ÑœÑ¤°¬¬n´Ž¤°œ±œ±œ±œ°œœœœœ±œ±œ±œ±œ±œ±œ±œ±œ±œœœœ±œ±œ±œœ”pœœœœœœ±¤Ñ¤Ñ¤Ñ¤Ñœ±œ±œ°œœœ±œ±œ±œ°œœœœœœœœœœ±œ±œ±œ°œœœœœ°œ°œ°œ°œ°¬¼Ž¼L³ë«ª«ˆ«ˆ£h£G£&££&£G£&£&£G£&››’æ“¼Ž½Rµµµ­¬ò¬ñ¤Ñ¤±”p””œœœ”pœœœœ°œ±œ°œ°œœœ°œ±œÑœ±œ±œÑ¤Ñ¤Ñœ±¤°¬´M´,´L´¯¤Ñœ±œ””œœ±œ±œ±œ±œ±œ±œ±œ±œ±œ±œ°œœœ±œ±œ±œ‘œœœœœœœœ±œ±¤ÑœÑœ±œ±œ±œ°œœœ°œ±œœœœœœœœœœœœ°œ°œ±œ±œ°œœœœ°œ°œ°œ°¬¼m´,«Ê«‰«h£&£&£&›šåšÅšå£F£F››&›››“›H¼¯½2­­­¬ò¬ñ¬Ñ¤Ñ¤±”p””œ””œœœœ±œ±œ±œ±œ±œ°œœ°œÑœÑœÑœÑœÑœÑœÑœ±¤¬n´ ´,«ë¼,ÅÅQ½1¬ñœ±”pœ±œ±œ±œ±œ±œ±œ±œ±œ±œ±œ±œ±œ°œ±œ±œ±œ±œœœœœœœœ‘œ±œ±œ±œ±œ±œ±œœ°œœœœ”p”pœpœœœœœœœœ‘œ°œ±œ±œ°œœœœœ¤¬¼L¼,«Ê«‰£h£h£&››šåšÄ›£&£&›šå››››’æ“'¼Ž½2­­¬ò¬ò¬ñ¤Ñ¤±¤±”pœœ”œœœœœ±¤Ñ¤ÑœÑœ±œ±œœœ±œÑœÑœÑœÑ¤ÑœÑœ±œ±¬«Ê«‰£‰£h£i£i«Ê¼mÄÎÍqµ2”‘œ±œ±œ±œ±œ±œ±œ±œ°œ°œ±œ±œ±œ±œ±œ±œ±œ°œœœœœœœœ±œ±œ±œ±œ±œ°œœœœœœ”p”pœpœpœœœœœœœœ±œ°œ°œœœœœ¤´Ž¼L³ë«Ê«©£h£h£G£&››šÄšÄ›££&›šåšå›››'››'¼¯½2­¬ò¬ò¬ò¬Ñ¤Ñ¤±¤±”pœœœœœœœ°œ±¤Ñ¤Ñ¤Ñœ±œ°œœœ±œÑ¤Ñ¤Ñ¤Ñ¤Ò¤Ñ¤Ñ¬°«ë›'’¥’¥’¤’Åšæ’Å›I£ª«ëÄϽRœÑœ±œ±œ±œ±œ±œ±œ°œ±œ±œ±œ±œ±œ±œ±œ±œ±œ°œœœœœœœ±œ±¤Ñœ±œ±œœœœ°œœœp”p”p”pœpœœœœœœœœ±œ°œ°œœœœ¬¯¼m´,³ë«©£ˆ£h£G£g£G£&››šåšåšåšäšåšåšå›››'›G›£‰¼Ž½­¬ò¬ò¬ò¬Ñ¤Ñ¤±¤°”pœœœœ°œ±œ±œ±¤Ñ¤Ñ¤ñ¤Ñœ±œ±œ°œ°œ±¤Ñ¤Ñ¤Ñ¤Ñ¤ò¤ò¬°«ë’ÅŠ„ŠdŠc’¥’„’„’¥’¥£‰£i£©¼½œÑœ±œ±œ±œ±œ±œ°œ°œ±œ±œ±œ°œ°œ±œ°œ°œœœœœpœœœ±œ±¤Ñœ±œ±œ°œœ°œ±œ±œœ”p”p”pœœœœœœœœœ‘œœœœ¤¬Ž¼L³ë«Ê«ª£ˆ£ˆ£h£g£g£g£&£&››šÄšÄ’Ä’Äšåšå›››'›'›£ª¼¯µ¬ò¬ò¬ò¬ñ¬Ñ¤Ñ¤±¤°”œœœ°œ°œ±œÑœÑ¤Ñ¤ñ¤ñ¤ñœÑœ±œ±œ±œ±¤Ñ¤Ñ¤ÑœÑœÑ¬Ñ£ëŠ…ŠdŠ#’¥š¤šæ£H›šæšÅšÅšæ›'£‰«ÉŤќ±œ±œ±œ±œ°œ°œ°œ°œ°œ°œ°œ°œ°œœœœœœp”pœœ±œ±¤Ñœ±œ±œ±œ±œ±œ±œ±œ°œœpœpœpœœœ°œœœœœœœœœ¤¬-«ë«Ê«Ê«©£‰«©«©«ˆ£ˆ£g£h£G£&›šåšÄ’Ä’¤’Äšåšå››››“'«ë¼Ðµ¬ò¬ò¬ò¬Ñ¤Ñ¤Ñ¤±¤°”œœœ°œ°œ±œÑ¤Ñ¤ñ¤ò¤ò¤ò¤Ñ¤Ñœ±œ±œÑ¤ÑœÑœ±œ±œ±¬’æ‚DŠC’„šåšÅ££&£G££šæš¥šæ›'“¼+¼ðœ±œ±œ±œ±œ±œ°œœœœœœœœ°œœœœ”p”pœœ±œ±¤Ñœ±œ±œ±œ±œ±œ±œ±œ°œœpœpœpœœœ±œœœœœœœœ¬¯´M«ë£Ê£©«©«©£ˆ«©«É«©«ˆ£ˆ£g›&›šåšå’Ä’Ä’¤’Ä’¤’Å›››’å›h¬-¼ñ­¬ò¬ò¬ñ¬Ñ¤Ñ¤±¤±¤°”p”œœ°œ±œ±œÑ¤Ñ¤ò¤ò¤ò¤ò¤ò¤Ñ¤Ñœ±œÑœÑœÑœ±œ±¬Ñ£Š‚DŠe’„š¤šÄ££¢å£'šÄšÄ££'’„’Å’¦›'´ +´ñœ±œ‘œ‘œ‘œ±œœ‘œœœ°œ°œ°œ°œ°œœœœœœœ°œ±œ±œ±œ±œ±œ±œ±œ±œ±œ°œœpœpœpœœœ±œœœœœ¤¬°´¯´M´ «ë«Ê£©«©«Ê«É«©«©£ˆ£g›G›'›'›&’å’Å’¤’Ä’¤’Ä’Å’Äšå›'›“£ë¼¯½2­¬ò¬ò¬Ñ¤Ñ¤±¤±¤±¤±”pœœ±œ°œ±œÑ¤Ñ¤Ñ¤ò¤ò¤ò¤ò¤ò¤ò¤Ñ¤Ñœ±œ±œÑœÑ¤ñ¬MŠ¥‚D’¥š¤šÅ𤢿¢å¢å¢åš¤š¤šƒšÅšÅšæ‚’„£G´+¤±œ‘œœœ°œ±œ‘œ‘œœ°œ°œ°œ°œœœœœœœœœ±œ±œ±œ±œ±œ±œ±œ±œ±œ±œœpœpœpœpœœœœ¤°¤°¬°´¯¼Ž¼Ž¼M´,¬ «ë«Ê«©«©«ˆ«ˆ£ˆ£g›F›&›&›“’Å’Ä’Å’Å’Å’Å’Ä’Å››&›'£‰´M¼Ïµ¬ò¬ò¬ò¬Ñ¤Ñ¤±¤±¤±¤±”œ±œ±œ°œ°œ±œÑ¤Ñ¤ñ¤ò¤ò¤ò¤ò¥¤ò¤Ñ¤Ñ¤Ñ¤Ñ¤ò¬Ð›HŠDŠD’cš¤šÅšƒš¤š¤šÅš¥š„’cš¤£šå£'šç‚’¤£g´Ð”‘œœœ°œ±œ±œ±œ°œ°œ±œ±œ°œœœœœ‘œœœœ°œ±œ°œ°œ±œ±¤±œ±œ±œ±œœœp”pœpœœ¤°¬°´¯¼¯Ä®¼M´ ´ ´+´ ³ê«ê«©£ˆ£g›F£G£h£h›G›&›&›&›’Å’å’Å’¥’Åšå››'›'››H«ë¼Ž½­¬ò¬ò¬ò¬Ñ¤Ñ¤±¤±¤±¤±”œ±œ±œ°œ°œ±¤Ñ¤ñ¤ò¥¥¤ò¤ò¥¥¤ò¤ò¤ò¤ò¤ò¤ Šd‚DŠ…’d’c’cš„šc’„š„’d’C’dš¤šÅ’„Š"𿫉’ç’æ¼L¬ñœœœ°œ±œ±œ±œœ°œ±œ±œ±œ°œœœ‘œ±œ°œ°œ°œœœœœ±œ±œ±œ±œ‘œœœ”p”p”pœpœ¬¼m¼L´,¼,´ «©«¨«¨«ˆ£ˆ£h£h£h£h›G›G£h›G›G›G›G›&’å’å’å’Å’¤šå›&›£G£G£h«Ë´mÄϵ¬ò¬ò¬ò¬ñ¬Ñ¤Ñ¤±¤±¤±¤±”pœ°œ±œ±œ±œÑ¤Ñ¤ò¤ò¥¥¤ò¤ò¤ò¤ò¤ò¤ò¤ò¤ò¤ò›i‚#‚DŠd’„’d’C’…š…’…’dš¥’d’CŠ’dŠ"Š#’¤šÅŠd«©£hÄΜ±œœ±œ°œ±œ‘œœœ±œ±œ±œ±œ°œ±œ±œ±œ±œ°œ°œ±œ°œœœœ±œ±œ±œ°¤±¤°œpœp”P”Pœp¬°´M´ «ë«Ê«ê«ê£©£h›F£G›G›G›G£g£h£g£h£h›G£g›G›G›&’å’Å’Å’Ä’Åšå›’å›'£G«©´mÄïÅ1­¬ò¬ò¬ò¬ñ¬Ñ¤Ñ¤±¤±¤±¤±”pœ±œÑœ±œ±œ±¤Ñ¤Ñ¤ò¥¥¤ò¤ò¤ò¤ò¤ò¤ò¤ò¤ò¤Š¦z‚ŠC’d’C’D’D’D’d’…’¦šÆ’DŠŠ#‰â›£'ŠCŠ’¤’„«g´ðœ‘œ±œœœœœœ°œ±œ±œ±œ±œ±œ±œ±œ±œ±œ±œ±œ±œ±œ±œœ¤°¤Ñ¬Ñ½Rµ¬Ñµ¤¬Ñ´ñ¼Ï¼m´,¬ «Ê«Ê«Ê£©£h›G›G›G›G›G›&›G›F£g£F›F›F›&›G›&’Å’¤’Å’Ä›“šå››'£h´ ÅÍ0½¬ò¬ò¬ò¬ò¬ñ¬Ñ¤Ñ¤±¤°¤±¤±”œÑ¤Ñœ±œ±œÑ¤Ñ¤ñ¤ò¤ò¤ò¤ò¤ò¤ñ¤Ñ¤Ñ¤Ñ¤Ñ¥œ-‚C‚Š#ŠDŠDŠ#ŠŠŠ’D’D’Ç’†Š$’¦ŠDŠD’d£H£HŠdâ‚#šÅ´Lœ±œ‘œœ”p”pœœœ±œ±œ±œ±œ±œ±œ±œ°œ±œ°œ±œ±œ±œ°¬ÑµÅRÅQÅQղͳÕÓÞ4ÕôÕ³Õ²ÍqÍPÄ®Äμm«ë«Ê«ê£‰£‰£h£g›g£g›&›&›&›%››%›&››&’å’Ä’ÄŠ¤’¤›'›šå›'£G«ª¼ŽÍ0½­¬ò¬ò¬ò¬ò¬Ñ¬Ñ¤Ñ¤Ñ¤±¤±¤±œ±œÑ¤ÑœÑœÑ¤Ñ¤Ñ¤ò¤ò¤ò¤ò¤ñ¤ñ¤Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤ò“i‚#‚#ŠDŠDŠ$Љâ‰ãŠŠ’†’eŠ$ŠE’§Š$ŠeŠ’ǫ룉âÂŠc«ˆ¬Ð”‘œ”p”p”p”pœœ°œ±œ±œ±œ±œ±œ‘œœœ°œ±¤±¬ñµÍrÝóÝÒՑÍ/ÍՑÝÒÞ4æuÞÝóÝóÕpÄîÍPÌ-´,´+«ê£É«É£ˆ£g£g£g›&›%›šä’äšä›’Ä’å’å’ÄŠ„’¤’å›››'£G´MÅŵ¬ò¬ò¬ò¬ñ¬ñ¬Ñ¬Ñ¤Ñ¤Ñ¤±¤±¤°”‘œÑ¤ÑœÑœÑ¤Ñ¤ò¤ò¥¤ò¤ñ¤ñ¤ñ¤Ñ¤Ñ¤ò¤ò¤ò¤°’Æ‚ŠdŠeŠ$Š$ŠãŠ‰ã’f’†Š$ŠE’èŠeãŠeŠEã£H’Æyy‚ŠD›´œ±””p”p”O”pœœœ±œ±¤±¤Ñ¤Ñ¤°¤°¤±¬ÑµÅRՒÝóÞÝÒՑՐÕPÌÎÄ­ÍÝÒÞ4ÞÞ4Þ4Õ²ÍPՑÍÄμ¼´L«ê´ «ê«ê£ˆ«¨£h›&›&šä’Ã’Ä’Ä’Ä’å’åŠ¤Š¤’Å’Ä’Å›'›«©Åͽ¬ò¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¤Ñ¤Ñ¤Ð¤°”œÑ¤Ñ¤Ñ¤Ñ¤Ñ¤ò¥¥¥¤ò¤ò¤ñ¤Ñ¤ñ¤ò¤ò¥œ ‚d‚$Šd‚E‚$‚E‚ãã‚ŠŠ%Š$’†ŠEŠfŠfŠ%Šf’¦’Ç’ç›IyŠd³É´Ð””p”p”Oœ¤¬°¼ð½Å1ÍQÍqÍQÅ0ÍQÍQÍQÕqÍ/Õ/ÕpՑݲՑÍOÍ/ččÕPÕ±Õ±ÞÝóÝóÕÒՑÍPÍÄμ´L¼¼l´ «ê«É«©£ˆ›&›’ä’¤’¤’ƒ’£Š¤Š„ФФ’¤’Ä’å“£h¼®Í¼Ï¬Ñ¤Ñ¤Ñ¤Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤Ñ”pœ±¤ñ¤ò¤ò¤ò¤ò¤ò¥¥¥¤ò¤ñ¤Ñ¤ñ¤ñ¤ò¤ò“i‚#‚E‚e‚$‚‚yãyÃyÁŠŠ%’éŠF’è‚%ŠfŠf““)«ì¼Ž“‚D‚#šå¼¬Ð¬°¬´ŽÄÎÅÍ/ÕPÕpÝÒݱՑݑݑÝÒÝòՑÕqÕ/ÌîÄÎÄ­Õ/ݱՑÕPÌîÄlčÌîÕPձՑձձՑÍPÕpÍč´ ÄïÄ­´+´ +«ê«ê«É›G›’å’Ä’¤Š¤ŠƒŠ„ЄХЄЄ’¤’Ä’å´,ÍÄδФѤѤѤѤѤѤѤѤѤѤѤѤ±¤Ñ”œ±¤Ñ¤ò¤ò¤ò¤ò¤ò¥­¤ò¤ñ¤ñ¤Ñ¤Ñ¤Ñ¤ò¤°’æz‚D‚EyäyäyäyäyÁäŠF‚ЇŠf’è’È‚y‚E“)«ìÅ1´m›Hq¢Šƒ³ÉÕPÕqÍÕÕOÕpՑձձݲÝÒݱÕpÕ/ÕpÝÒՑÕpݑÕqÕPÍ/ÌîÕ/ÕpÕpÕpÌμL¼ +ČÕ/ÕpÍ/Í/ÕpÍÍ/ÍÄ­´+Ä­Ä­¼¼L¼l´+£¨£ˆ›G’å’Å’ÅŠ¤‚d‚C‚„Š„‚c‚CŠƒ’Ä«ÊÄÏÄ­¼ð¬ñ¤Ñ¤Ñ¤±¤±¤±¤±¤±¤±¤±¤±¤±¤±¤±¤Ñ”œÑ¤ñ¤ò¥¥¤ò¤ò¥­¤ò¤ñ¤Ñ¤Ñ¤Ñ¤Ñ¥œoryã‚D‚EqäyäyÄyÃyÄz‚yÄyÃyäŠÈЧ‚äy‚y£‚%“(›i´¯›‰‚e‚e‚#’åÄîÕ±ÕpձՑÕqՑݱÝÒÝÓՑݲݱݲՑÕPÕpÕpÕpݑÝóÝóݲÕpÕOÕ/ÕpÕpÌî´ +³ÉÄkÕ/ÄÍÄ­ÍÄÍÌîͼ´L¼lÄlČčÄÍ«ê«ê¬ +£ˆ›&’å’å‚c‚C‚#‚C‚C‚dŠ„ŠÅ£©Ä®¼L¼Ž¼ñ¬Ñ¤Ñ¤±¤±¤±¤±¤±¤±¤±¤±¤±¤±¤±¤±¤Ñ”œÑ¤Ñ¤ñ¤ò¤ò¤ò¤ñ¤ò¥¥¤ò¤Ñ¤Ñ¤ñ¤ò¥œ-zDz‚D‚EqÄy£yÃy£y£yäy£yä‚%‚F‚fyÃyÄzЇ‚f‚%‚f‚†£«£Ëz$z$‚…Š¥´ ÕOÕpՑՑՑՑÕpÕpݱÝÒÝÒՑݲݲÕOÕ/ÕPՑݑÕpݐÝòÝóݱՑÌÎÕ/ÕOÌΫ¨«¨ÌÍČÄlÌÍĭČĭ¼¼ÄkÄK¼kÄ­Ä­´+¼l´ +£ˆ›F“Šå‚„‚czCz#zC‚dŠÅ«ëÄ®¼L´M¼ð´ñ¬Ñ¤Ñ¤±¤±¤±¤±¤±¤±¤±¤±¤°¤°¤°¤±¤±œœÑœÑ¤Ñ¤ñ¤ò¤ò¤ñ¤ò­¥¤ò¤ñ¤ò¤ò¤ò¤ò“ì‚Dyã‚D‚eq£q£q£q£yÃq£qƒyäyäyäz‚%‚%Šè“ ŠÈŠé“J“‚E¬Mz‚eŠÆŠ¥£hÄ­ÕOՑÕPÕpՑՑÕpÕpՐՐÝÒÝÒݱÝÒÝÒÕpÍ/ՑݑÕPÕ/ÕpݰÝÑÕpÌÎÕ/ÕOČ«ˆ´ +čČĬĭ¼KÄlč¼l¼ +¼ +¼kČČÄͼl«ê¬ +›GпХ‚„‚dz#z#r‚…«ëÄ®´,´L½½2´ñ¬Ñ¤Ñ¤Ñ¤±¤±¤±¤Ñ¤Ñ¤±¤±¤°¤°¤°¤±¤Ñ”œ±œÑœÑ¤Ñ¤ò¤ñ¤ñ¥­¥¥¤ò¤ò¤ò¤Ñ¤ò“«z$z‚E‚fqÄq£qƒqƒqƒqƒqƒqƒqƒyĂ&z‚‡“K›Í›k“*‹ ŠÇ£«´Ž‚Eyä‚d‚d’Æ´ ÌîÌîÕpÕPÍ/ÌîÍÕPÕpÕOՑÝÒݱՑÝÒÝÒÌîÌÎÕPÕpÌÎÌ­ÍÕOݱÍčÌîÕOĬ«¨³ê¼l¼k¼K³é¼KÄ­´ +³é´ +¼ +»é¼J¼l´+´ ¬ ›‰“‚¤zCz#z#r‚…´mÄδ,¼L¼ÏÅ1µ¬Ñ¤Ñ¤Ñ¤Ñ¤±¤±¤Ñ¤Ñ¤Ñ¤±¤±¤±¤°¤°¤±¤Ñ”œ±œÑœÑ¤Ñ¤ñ¤ñ¤ñ¥­¥¥¥¤ò¤ÑœÑ¤ò“Šz$z‚EІziƒibiciƒiƒiƒqƒqƒyåqcz&‹ “l“KŠéŠé“)¬NÅ«ëqÃq£z$‚d“›h¼ÄlÍÕPÕOČČÍÕOÕpÕpÕOÕpÕOÕ/ݱÕ0čÄlÌÍÌîÄ­Ì­ÌÍÕOÕ/¼K¼LÍÕoÄͫɳê¼K´ +«‡³éČ³é´ +¼+«‡³é³È´K¼+«É¬ ¬ ›h‚¥rzCzdŠÅ´mͼL¼LÄÎŽ¬ñ¬Ñ¬Ñ¤Ñ¤Ñ¤±¤±¤Ñ¤Ñ¤Ñ¤Ñ¤±¤±¤±¤°¤±¤Ñ”œÑ¤Ñ¤Ñ¤Ñ¤ñ¤Ñ¤ò­­¥¥¥¤òœÑœÑ¤ò‹jz$zE‚EІ‚FiƒabaciƒacicicibiBqåŠê‚É‚‡ŠÈ‚ÈŠé¬.¼ñ¬ ‚¦qäiƒqÃz$Š„“¬ +Ä­¼KÌîÍÌÍÌîÄKČÌíÌîÍ/ÕoÕpÕ/ÌíÕ/ÕPÄ­Ä­ÕÕÌî̬ÌÍÕ.̌¼KÄlÌíÕ/¼k«¨«ê«©£f£g¼l³é¼+¼*«‡«¨«ÉČ«ê´ +´+«ê›h‚…rzd“´+ͼL¼K¼ÄðÅ1µ¬ñ¬Ñ¬ñ¬Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤±¤±¤°¤°¤Ð¤Ñ”‘œÑ¤Ñ¤Ñ¤ò¤ò¤ñ¤ò¥¥¥¥¥¤òœÑœÑœÑ“«zDz$z‚E‚fz%icacacacacaCaCaCrrz‚ˆ‚¨z›Œ´°¬N‚…q£qãababz‚dФ›'¼Äl¼*ČÌîÍÄ­¼KÄkÄkÌÍÕ.ÕOÕpÕOÕÕpÕpÕ/Í/ÌîÍÍÌÍÕ Õ.̌ÄJĬÌíͳé£g«¨›g£g¼+³é«É³é«‡«È¼K´*´+´*«é£Ê›©›‰“'›G£¨ÄÎÄ­¼+¼l¼®Å½µ¬Ñ¬ñ¬ñ¬ñ¬Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤±¤±¤±¤Ñ¤Ñ”œÑœÑ¤ò¤ò¤ò¤ò¤ò¤ò¤ò¥¥¥¤òœÑœÑœ‹ŠÆz%qäyä‚f‚fqåi„acacacacaDaCadi¤qåzFz%‚ɬO´£ËŠèaiƒz$i‚zyã‚D‚„£hÄ­¼*¼KÄ­ÄÍÄÍÄÍĬ¼ »éÄkÕ.ՐÕpÕ/ÕpՑÍÌÎÄ­ÄÎÄÎÄ­ÌÍÕO̬̬Ìí¼KÄK¼ £f£‡«¨£ˆ«ê«ˆ«¨³é£‡´+¼K«é«É«É¬ +´+´ ´ +£¨«É´ Äï¼K´+¼mÄð½´ñ¬Ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤±¤±¤Ñ¤Ñ”œ±œÑ¤ò¤ò¤ò¤ò¤ò¤ò¥¥¥¥¤ò¤Ñœò”NqãŠæ‚†qäqäz‚Ez%acada„a„adYdYDaDiÅr&zG‹ +›í´°›«“£ªŠÇibabi¢i¢i‚r‚¥“'¼ÎÄ­¼KČÄl¼L¼Œ¼l¼*¼*³È¼*̌ÌÌÍ ÕOÕoÄ­ÄmÄlÌ­¼+¼ ¼*ÌÍČČÌí̬«¨³¨«‡«‡«È›G›F£g«É«É´ +´ +´ +«É«É´ +¼K´*«É«ˆ«É«É´LÄ­¼ ´+´m¼ðµ´ò¬ñ¬ñ¬ò¬ñ¬ñ¬ñ¬Ñ¤Ñ¤Ñ¤Ñ¤Ñ¬Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤Ñ¤Ñ”œ±¤Ñ¤ò¤ò¥¤ò¥¥¥¥¥¥¤ò¤ò¥‹Ši ’炦z%qäqäzzi„a„a„YDY#Q$Y#YdiæiÅzˆ“l›î›í‚gŠè“(ЦYYBiÃiÃqãzDФ£©Å¼¼+¼+¼+¼+¼l¼K´ +´ ³È«§³ÈÄJÌíÕOÕOÌμl´ ÄL¼L«‰«¨Ì¬Ì¼ ÌíÌí³é«‡«§³È›&’å«É£©«Ê³ê«¨«ê´+´+¼l´ ³É£ˆ£ˆ«É«É´LÄl¼+´M¼¯¼ð´ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¤Ñ¤Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¤Ñ¤Ñ¤Ñ”œ±¤Ñ¤ò¥¥­¥­­­­¥¥¤ò¥ƒiЦ‹zfiåqÄqÄqäi„adQ#QIIHâQDYdj‹k›¬“¬‚ézf‚‡qÃzYaBababrzDŠå£É¼´+«É´ +¼+ÄkÄͼ­£g£F«†«f³†¼ ̬ÕOÕpÕPÌμ ¼KÌÍ´ +’å¼KÕO´*›G¼KÍÍ.¼ «f³È³É›G«¨£¨£ˆ£ˆ«¨´+Äl¼K«¨«‡«È«¨›&«É¼LÄ­¼K¬ ¬n´¯´Ð¬Ð¬°¤Ñ¬Ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¤Ñ¤Ñ¤Ñ”‘œÑ¤ò¥­­3­­­2­3­3­2­¥¤ò­‚Çi yã›i‚§r&iÄi¤qÄi¤Q@ÂIII@âQCrG‹K›¬“J›Š›j“(‚eiƒi‚aAabaAYBiÂ¥“£ˆ´+«é«É´+¼K¼ŒÄŒÄk³é£g«‡³è³†³ÇĬÕ/ÕpÕPÕp¼LÄlČ̭«©£gÌÍț&£g´*ÍÌͳȫ§ÄŒ´ +«È«¨£g³é¼lȼK¼k«¨›F«ê«É«©´+ȼK³ê¬ ´Ž¬¯¤¤¤°¤Ñ¬Ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬ñ¬Ñ¤Ñ¬Ñ¤Ñ¤Ñ”‘œÑ¤ò¥­2­2­3­3­3­3­3­3­2­­´ÐŠæi i ’Æ“)zFa¤a¤iÄac@Á@ÂI#QDQCIYCrz¨“j›¬¬-£Ê“H‚¦i£YYYAY!YBa‚‚dŠæ›h£¨«é³é¼+¼l´*¼KČÌÍČ³è³§£³‡Ä¬ÕpÍ/ÌîÕPÄîčÄÎĬĭ£h´*Ìí«¨›šä¼*ċ¼ «‡¼*¼K¼K¼K³È³é¼KČČÄl´+£¨´ +«É´+ČÄl¼*´ +´,´Ž¬°¤°¤°¤Ñ¬Ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¤Ñ¤Ñ¤Ñœ±œÑ¤ò¥­2­2­3­3­3­3­3­3­3­´ð¼’æiai q‚’Æ‚†aÄa¤ri¤IIII#I#a¥z'r&zF‹(¤ ›«“J‚ÇrqãabaBaba‚a¢iäz$ŠÅ›G£h£‡«‡«é¼+¼l´ +«é´ +ÄkÄk¼K«f³§ÌÍÌíÄkÄkČÍ/ÄÍÄÎÄ­ÌͼK³êȼ +£›´*Äk³†«f«‡¼ ȼJ³§£F´ ¼KÄkĬÄk¼*¼K¼+ÄKÄKÄK¼*¼L´Ž¬¤¤¤°¤±¬Ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬ñ¬ñ¬ñ¬ñ¬ò¬ò¬Ñ¤Ñ¤Ñ¤Ñ¤±œ±¤ò¥¥¥­3­3­3­3­3­3­3­3­´¯¬ ’æzi‚ibq‚‚$‚†‚§‚§rY„A@âI#I#a¤qåqåqåiåa¤a£rFŠé‹ ‚‡qäi£a£iÃzd‚„‚dzB’å›h›&›&£©«É«é£¨«©«¨«‡ÄŒÍ¼*³È¼ Ä*̬ͼ*ÌÍÌî¼+Čĭĭ«‡«‡ÄŒ«¨£%Čĭ«‡£E££%¼K¼Œ¼*£E«g´ ¼ ¼*¼*ČÄkÄJ¼ ¼ +´ +¼LÄϼ﬏¤¤°¤°¤±¬Ñ¬ñ¬ò¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬ñ¬ò¬ò¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñœ±¤ò¥¥¥­3­3­3­3­3­3­3­2¬ñ¬M›ˆŠÅŠ…qäiƒiBi‚$›HŠèzgYÅ8â0¡00¡HâH€HÁY"YQr%zEiÃr‚é‚é‚§zezE‚…‚„Š£i¡‚B››H«©«¨£¨£ˆ«É£fšÃ’£´*ÌÍ«§›£%³Èͼk³§¼KÄδ+¼l¼+Ä­³¨£E¼J«¨£gČÌͳé£F£šã£f¼*ȳ¨£f«‡«f«‡³é¼ »è¼ ¼ +¼+´+´m¼Ï¼Ï¬°¤¤¤°¤Ñ¬Ñ¬ñ¬ò¬ñ¬ò¬ñ¬Ñ¬Ñ¬ñ¬ò¬ñ¬ò¬ò¬ò¬ò¬ñ¬Ñ¬Ñœ±œò¥¥¥­3­3­3­3­3­2­2­¬£ê“G‚d‚…rqåqäiBy䊯ŠçrfIC98â0Â0Â8â8¡0`8¡Háaca„i¤rrFr%r&‚é‹k‚ÇzezDr‚Cz"’£Š¤£ˆ£g£‡«§£%šÃ’££f¼l£‡Š!’‚£´ ÕO¼l³é«ˆ¼K¼l¼+¼K³È¼ ³È¼J³è£FÄ­Í.¼k£g£F«†£E«‡¼l´ +«É«¨«§¼ ¼*¼ ³¨«‡¼*Ä­ÄïÅ1½¬°¤¤¤°¤°¤Ñ¬Ñ¬ñ¬òµ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬ò­µ3µ¬ò¬ñ¬Ñ¬Ñ¬Ñœ±œÑ¥¥¥­3­3­3­3­3­2­´Ð¬,›ˆ“‚„‚dzEzfzgzЦ‚¦iåY¥9ADADA#ICAI"8Á @(`Q#YCi¤rrFriär%‚È‹J‹j“i‚„‚c‚C‚cŠƒŠ¤£©›F’Ä’¤’¤£g´ +›&‚!ŠA’¢«§Ìí¼kÄ­´*£F³È¼K«¨Äl³È³é³è«‡Äk’Ä«ÉÕOĬ£Fšå£‡´ +«§´ +¼K«¨£‡«È´ +¼ ³É«é´ +´+¼ÏÅq͓År´ñ¤°œ¤¤°¤Ñ¬Ñ­µ¬ñ¬Ñ¬Ñ¤Ñ¬Ñ­µµ¬ò¬ò¬ñ¬ñ¬Ñ¬Ñ¬Ñœ±œÑ¥¥¥­3­3­S­3­3­3¬ñ¬Ž£Ê“&‚„‚C‚…z†z‡z‡‹’æzeYcY¥A9ADI#jY¤QcI"0¡(I#YCYca„i¤iäiärFz‡jz§›Ì¬,ŠÅzqÂz#‚b›£©›&›&›&£ˆ’äŠa’‚›«¨Ä¬«¨£ˆ´K¼l³é¼K£G›%Äk¼K³È³éšä³È“›'ÌíÄÍ«‡šÄ£F¼k¼*¼*¼k´ +«§³é¼l³é«É´ +«ê¬,¼Ï½1½1½R¬ñ¤œ¤¤°¬Ñµ¬ò¬Ñ¬Ñ¬Ñ¬ñ­µ3­¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñœ±œÑ¤ò¥¥­3­3­3­3­¥­¬°¤,“'z"rŠ…Šè‚È“(›i‚¦r%Yƒ@â8â0ÂA#QcaÄj%Y¤aÄA"8ÂIY…aÅaÄrgz§zȋJ‹J‚Ç‹(“I›‰¤ ŠçzdŠÅzdqÁ£g£©Š¤´ +£F’ëȳé¼K«ÈФ‚"›&´ +Äμk«‡›&«¨«¨«‡«‡«†«É¼ £G“ÌÌÌî³éšÃ£%¼K¼l¼KČ´ +³é¼K¼K¼K¼K¼Œ´m´M´¼ð´ñ¬Ñ¬ñ¬°œœ¬ò­¬Ñ¬Ñ¬Ñ¬òµ3µ3¬ò¬Ñ¬Ñ¬Ñ¬ò¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñœ±œÑ¤ò¥¥¥­3­3­3¥¥­¬°›‰‚„qÂi‚d‚§z§›i›i‚Çr%ra¤A#IDAY¤r%rfj&rfY¤I#I$Y…ƒ zézț̤N´¯¤M›ª£ë¬,«é›ˆ£ë£ë£gФqâ‚"“£Ê£‡›£g¼K«¨šä‚!yá‚›¼lȼ*¼*¼k³Èšå«‡³è£E£ˆÄl£FŠ¥ÌíÍ.Äk›šÃ³é¼l¼KÌí¼J³È¼*ČĬÌÍÄî¼l´L¼®Äエ𤰜oœ¬ò¬Ñ¤±¤±¬òµ3µS¬ò¬Ñ¬Ñ¬Ñ¬Ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñœ±œ±œÒ¤ò¥¥­3­3¥­­¬Ð›ÊŠÄzaaa‚zDz%‚§£ª›‰“(‚¦z‡rFaÅY¤8áaÄrFz¦‚Çz§ƒ*rˆb'j'›Ì¤N›Ì¤-¬n´ŽÅ0´Ž¬ £ê›ˆ£ˆ›%ŠÆ£Ë›Šbz›&£Ê›h£F«È£‡’Ä‚‚BŠƒ›F´*Ä­ÌîÌÍÄ­Äl´*£g³È¼ ´ «ê¼K£fzDÍÍÌÍ´ £%£E¼JÄkĬȼJ¼JÌÌÌÌÍÍÍ/Ց͒ճ͓͒½1´ñ¬Ñ¤œ¤Ñµ3µSµ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ”±œ±œÑ¤ò¥¥¥­­2­¬ñ¤n›‰‚¤i¢YBa¢‚„z†Šç£ª›‰“(Šè‚Ç‚‡z‡rfbjrEz†‹(‚è“‹›Í¤O¤.¬nÅÍrÍr¼ï¼®Å¼®´+´+£¨›G£g’£››jŠ¥Šƒ’ä›&«ë³é³è’Ä’£šä«§¼*ÄÎÍ/Ä­¼K´ +Ä­ÄÍÄͼL´ +´ ³é´*«È³éz#´KÕ.ÌÌÌíĬ³è¼ ̬̬ÌÍċċÌÍÌÍÌíÍ ÕOÞÞÝóÞUæwÞwͳ´ñ¬°¬òµSµ3¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ”±œ±œÑœÑ¤ò¥¥­­­¬ò¤Ñ›ì‚cYAYbiÂzD‚¦ŠÆ›‰›H‹ŠçŠçŠèrgj&ƒ +‚èz§‹J›«“Š›ì´¬Ž¼ðÅQżÎÅÄï´+´+«ê«É“G›G’Ä›%›%›’Ä£ª£g’Û&«É¼L«‡£g«§¼*ÄkÍÌî¼+£G›&«¨ÄŒÄî¼­«É´*¼l³È´ £F«f£ˆ´ +ÍÌͼkÍÍ/ČÌíÍÌíÌÍÍ Ìì̬ċ̬Í.ÕOՑÝòÞæVÞUÖͳŔµS¬ñ¬Ñ¬Ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ”±œ±œÑœÑ¤ò¤ò¥¥­­­¬ñ›ëzCYAYBi¢i¢zeŠæ›G“‹‚¦‚¦‚ÈrgjG‚雫“j‚è›Ì¬M¬M´¼Ï¼Î¼ÏÄï¼®´,´ ³é«¨£ˆ«¨›&›&›%’Ä£F’団%«Ê›h›%«§¼K´ +«‡´ +¼KÄkÄ®´+›%Šƒ’Ä«¨¼lÄî´K«‡«¨¼K´ «‡¼*«‡ÄŒ¼lÄÍÕ/¼*³ÉÍÍOÌíÌíÌÍÌíÕ.Í ÌíÌÌÌíÕ.Í.ÕoÕoÕÒÝÒÝÒÕÔÍõÅs¬ñ¬ñ¬ñ¬ñ¬ò¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ”±œ±œÑœ±œÑ¤ò¥¥¥¥¬ò¤o“Hz"a‚i¢ri¢a‚DŠ…‚¥‚…z†z†z†z‡rg‹I¤ ´¯´¯›ì¬n¼®´Ž´Ž¼m´l´m´L´,«ê£ˆ£‡£g›F’å›&£g’£’ä’ä’£šã›«ë£g£f«§¼l³È´ +¼+Ä­¼L«‡’¤’£’Ä£g«É¼ŒÌ›F´ ¼k«‡³é´ +³É¼ŒÍ/ÍČ«‡«§ÄŒÄ­ÌÍ̬ÌÍÍÕ.ÌíÕ.ÕoÍ.Õ.ÕOՑÍ.Í.ՒÕÔ½¬Ð¤°¤±¬Ñ¬ò¬ò¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ”±œÑœÑœÑœÑ¤ò¥¤ò¤ò¤ò¤Ñ¤N“'‚CiÂi㊥ra‚a‚i‚iÂrzezezfzf‚烓Ь-¼®Äð´¯´Ž´L´M¼m´+£©£©´ +«ê£ˆ›F£F’劃›%£‡›%›%’£›%›E›%£‡´,£F«f¼L¼+´ +¼ +Ä­¼*›’b’ƒ’Ä£F«¨¼lÍ´K›F´ +Č´ £‡´ +šÄ¼KÍOÍ/ȼ «E«F¼ +ÌíÌÍČÌÌÌíÌíÕoÕ.ÌíÕ.ÕpÍ.Õ.ÕPÕqÍP´¯¤¤°¤Ñ¬Ñ¬ò¬ò¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñœ±œÑœÑœÑœÑ¤ò¤ò¥¥¥¬ñ¤n“'zCqÂz#ŠÅzCYbIQ!jŠÅ““'r%rF›Ë›Ë›«¤ ´mÄϼ®¼®¬M¬,¬,´L¬ ›‰£‰«ê«É›&£g›F“£F«‡››&«‡£f£g£%£%«É´ «‡³ê¼l³é«¨¼L¼+›š¢«fšÄ’££fčĮÄӈ«¨¼k¼K£F«È³È›¼KÕOÍO³É³§«f³èÄ­ÌíÌÌÌíÌíÌ¬Õ Õ.ÕoÕ±ÌìÍ ÝóÕ±ÕOÕ/ÄϤo¤°¬Ñ¬Ñ¬ñ¬ò¬ñ¬Ñ¬Ñ¬Ñ¬ò¬ò¬ò¬ò¬ò¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñœ±œÑœÑœÒ¤ò¤ò¤ò¥­­µ¬n‹'‚cr‚d‹‚¥iãiãŠÆ›F››g›g‹‚…›h¬M¬n¬n¬-´n´n´L´L´,£ë«ë´+´L›ª£©«É´ £©£©›G£g«‡£F£F«‡«f››%£f«f¼L´ +«‡¼«¨«¨´+³ê£F«f¼K£FŠc›¼+ÄÎÍ´K«¨³É´*«¨£F¼+«‡›ÌîÕO¼*£«‡¼*Č̬̬ÌÌċÌíÕ ÕÞݏÕ.ՑÕpÕÍ ÌîÄԐ¬Ñ¬Ñ¬Ñ¬ñ¬ñ¬ò­­µ¬ò¬ò¬ò¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ”‘œ±œÑœÒ¤ò¤ò¤ò¤ò¤ò¬ò¬ñ¤M“H‚dz#ŠÆ›ˆ›‰›G›g›F’ä’ä›F£ˆ›&Šæ“H›‰¬-´Ž´M£ì£ì£Ê£©«ë£Ê£©«é´+«ê›h«Ê´+¬ ´+¬ ¬ ¬ ´L´ «‡«¨«¨«¨£g«‡³È¼m«g¼+«É«g³ê«É«¨¼K¼´ +Šb’Ä«¨¼ŒÍÄΫɛ%´ +³é›F«¨¼l’£³éÌÍÌí£%£F¼KÍÌ­Äk̬ÌÌÕ ÕÝóÕoÕoÝÒÕNÕ.ՐÕ.Ìͼ¯¬°¤°¤±¬Ñ­µ3µ2µ¬ò¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ”‘”±œÑœÒ¤ò¤ò¤ò¤ò¤ò­¬ñ¤-“'‚C‚C“G£©£¨£f›F›’å›g›g““““'£Ê¬,¬-¬ ¬ «ë¬,«ê£ˆ£©›ˆ£h£ˆ£¨›h£©«¨«©³É£ˆ£ˆ£ˆ«©£ˆ´ ´ ¼+¼+³È³é«¨¼L¼L³é¬ £F«É«ˆ«ÈčÄï´*ŠBŠc£g¼+¼ÄΫé£F³é¼*£g«ˆ¼K’ƒ£%ÌîÍ/£f£%¼KÍ/Ìî¼*̬ÌíÕ.ÝóÕNÕ Õ‘Ý°ÝÝÕÝÒÕ/Äάn¤¬òµ3µ3­¬ò¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ”‘”‘œÑ¤ò¤ò¤ò¤ò¤ò¤ò¬ò¬°¤ ‹‚d“'«Ê£g›%Š£’å“&›h£ˆ£©›g“&“›G£ê¬,¬,¬,£ë£ë¬ ¬ £ˆ›G£ˆ›G›g³ê´+«ê«ê«É«¨«©«ˆ«‡£g›£g«É³ê¼l¼m¼K³¨³ÈÄ®«¨«Ê£g«É£g³é¼L¼®¼L›ŠB›«¨´ +Äμ­«¨£g´ +£g£g´ +’ÅŠƒÄÍÍ/£gšÃ¼*Í/Í/ÄkÄkÌíՑÕOÕÕ²ÕOݱÝñݐݱՐÕOͼð´ñµ¬ñ¬Ñ¬ò¬ò¬ò¬ñ¬ò¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ”q”‘œÑ¤ò¤ò¤ò¤ñ¤Ñ¤Ñ¤Ñ¬n£ë‹‚d›ª£ˆŠƒŠ¤›h›‰£É£¨£¨£É£ˆ£ˆ¬ +´l´L¬ £É›‰›©£©£©£‰£¨›h«©£©›h³ê´+´ +«ê«¨«¨«É«ˆ£g£‡«É´ +¼ +³É³É´ +¼L¼L´ +Ä®¼L«Ê«©£g£g³É´ ¼m¼³êŠc’ƒ£F´ ¼Ä­£‡£g£F›£‡«¨Šƒ‚B¼KÌÍ£&’ü*ÕpÕpÌÍÄKÍ0ÕqՐÕÓÕPÝoÝÑÝòÝòݰݱÝÑՑÄ﬏¬°¬Ñ¬ñ¬ò¬ò¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ”‘”‘œÑœÒ¤ò¤ò¤ñ¤Ñ¤Ñ¤°¬n£ë‹‚„›h›h“'›h›ª£Ê£ê«é£©«ê£©£¨›ˆ“G£©«Ê£É£ˆ£©£ê›‰›G£ˆ£ˆ«É´ £©«©«É«ê³ê«¨«¨³É³É«¨«É¼+¼ +¼+³É£g«‡´ +Ä®Åč¼®«Ê£ªšå«ˆ«‡³ê¼Ä®¼lŠ„‚"›&³ê¼m¼«ˆ›“šä£g’åyá‚"¼KțšÃ¼KÍPÍPÄkČÍ0ÕpÞÕ²ÌíÔíÕOݰÝÑæ4æ4ÝóÕoÄ¬°¬Ñ¬ñ¬ñ¬ò¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ”p”‘œÑœÒ¤ò¤ò¤ò¤Ñ¤Ñ¬¯¬n›Ê‹‹£Ê£©›ˆ£©´,´L´L´K´+«ê«ê£©›ˆ£©£ë£ê£©£©›h›h£©£©£©¬ «ê«Ê«ê«É«¨³ê«©«¨£G£F£g«Ê£©£ˆ«‡³È¼*³É£&³ê¼LÄÎÍQÄΫ꫈’¤››G«ë¼+Ä®¼­›‚’¤«¨´ +¼L«¨’££F£%›&›q¡’¤¼*Č’Å’£¼lÕqÌî¼ +¼KÌÍÕ²ÕÓÕpÍÌíÕpݱÝÒÝòÝÑÝòÝÑݐĮ´¬Ñ¬Ñ¬ñ¬ñ¬ò¬ò¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ”p”‘œÑœÒ¤ò¤ò¤Ñ¤Ñ¤°¬¬M›‰Šæ‹£Ê«ë¬ +£©´ ¼l¼K¼l¼L¼l¼´ «ê«ê£Ê›‰“'“'›G£ˆ¬ ¬ +£©«ê´ +´+¬ «©«©«Ê«¨«¨«ˆ›'£h´+´L£ˆšåšÄ£G³é«‡£g´+¼lÍÍ0¼L£%’ÅŠc›£‰´ Ä­ÄΫ©Šb‚"’Ä›&£ˆ£g£%’Ä››’ÅqÁšå¼*Ì­›šäčÕqÄ­«g³ÈČÍPÝÓÕ²Õ±ÕPÕ/ÕÕNÝÑææ3æÝòÍ/´¬Ñ¬ñ¬ñ¬ñ¬ò¬ò¬ò¬ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ”p”‘œÑœÒ¤Ò¤ÑœÑ¤°¤¬Ž¤,“i‚ÅŠÅ£©£Ê«Ê´ +«ê³ê«É«‡´ +¼K¼Œ¼l´+´+¬ +¬+£©“G£ˆ«ê«ê«ê«ê«ê³ê´ +´ +«Ê´ +«É³É£‡«ˆ£ˆ«¨«¨«ˆ£F›£&£h£ˆ«ˆ³ê³ê¼LÄ®Í0¼›šå‚#‚"›G´ +¼ÄμL›yâ‚"Ф›«©›i’æz#Šƒ‚"›³é¼K£F›&ÄîÕp´*šÃ«g¼*ÕpÕ²ÞÝóÕOÕ.ÕpݱææTæ3ÝÒÝòÝÒÅ´Ñ´ò´ò´òµ¬ò¬ò¬ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ”‘”‘œÑœÒœÑ¤Ñœ±¤¬´m£ë“HŠÅŠÆ“’æŠ¤Š¤’å›G«ˆ«¨£ˆ³é¼+´+³é´+´ +´+´+¬ «ê¬ +«ê£©«ê«ê«ê«É«é«É«É£g£G£ˆ£h£‰«ˆ£%££F«É´ +¼L´ £ˆ«É¼m¼®ÄÎÄïÄΫfŠbЦz$“´+¼L¼ÄŒ›&qâ‚"Šƒ›G´ +zqŠ„yâ‚c‚Šc£g³é’å›ÄîÍP¼+’££¼+Í/ÕóÞÕ/ÌîÕpÞæ4ÝóææÝòÝÑÞÕp´¬±¬Ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¤Ñ¤±”‘”‘œ±œÑœÑœ°¤´¯´®¬M›Ê‹'‹›i›H’å““zDz"’Å«¨«ˆ£ˆ³É³É«É¼+¼K«ê´ «ê£É£ˆ£ˆ£©«ê£©£ˆ¬ +´ ´ +´+«É“'›'«©´ «¨³É¼,³ê«Ê´ ¼K´+«©«‡¼+ÄïÄ-¼m«g‚"Ц“›G³ê¼L¼m¼l«Ê‚Cyâ’å«É£g‚"z#z#z#ФŠc‚B›&«ˆŠc›ÌïÍ/´+’Å£%³¨ÍÝóՑÕPÕPÝpݲÝóÞæÝóÝòÝÒæݱÄϴЬѬñ¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬±¬±¤±”p”œ±œ±œœo¬´Ž¬L£Ê“h‹“'›ª£©›h£ˆ«Ê«ë“'‚„Š„šå’¤›G«¨´ +³é¼+´*´+´ +£©›h£É´L´+´+´K¼l´+´ +«¨«¨«ê£ˆ´ +¼+³Ê´+¼¼m¼+¼K¼+¼l´+£G£&«©¼m¼Ž´L£g‚"‚D’Å£‰«Ê¼LÄm¼´,‚Cz£ˆ³ê£gФ‚DЅФ’æ›’¤Š¤Š¤yÁ£GÌïÌÍ´ +šåšÄ³‡ÍÝÒÝÒÕPÕÕpݲÝóÞæ4ÞÝòݱݱÝpŴѬñ¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬±¤±¤±Œp”œÑœ±œo¤N´m´M£ë›h“'‹“H£©«Ê£©›g›G£G«¨£gФФ›&›'›G’囫‡³é´+«ê¼l´l´,¬+«ê«é´+³ê´+¼K³ê£ˆ«ê´+¼m´L´M¼m¼´,¼L¼,«©³Ê´ +«ˆ«ˆ«ˆ«ª¬ ¼m£ˆŠB‚Šƒ’å«ê´ ¼,´+£‰‚d‚#£h«©£g’¤’¥’¤Šc‚d£ˆ£g’ƒz‚#£ˆÄÄ³é’Ä’¢³‡ÌîՑÕpÕÕpݑݑÝÒÝÒݱÝÒÝÑݱݱÍį´Ñ¬ò¬ò¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬±¬±¤°¤°Œp”‘œÑœ±¤¬n´L¤ ›©“H“G““›‰£©›g›&ŠƒŠ„’Å›’å‚C’æ«É£©›&Ф£g¼K¼l´ ´+´ ´ ´L´l¼Œ¼l´ +«ê«ê´ +´+³ê´+´+«ë¼MÄ®¼®Ä®¼M´,´,«©£h£h£H´ ´M£ª£‰£'yâqq¢’Å«©´,¼L´ «ê‚e‚D£‰’æ›&’Œ报šå‚#›³Ê£&yÁ‚C«É¼LÄ­¼ šä’‚³¨ÌÎÕ/ÌîÕ0ÕpÕ/ÍÍ0ÍÌïÕPÝÒݱÕOÕÄδѴò¬ò¬ñ¬ñ¬ñ¬Ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬±¬±¤°¤°Œq”‘œÑœ°¬´m¬ £Ê›‰“H“'Šæ’棉£‰“’å’¤’¤Š¥‚C“’Åz#’棩«é«Ê£ˆ«¨³é¼l¼´+´+¼¼¼l¼Œ¼L´ +³é«¨³É«©«©«ª´ ¼m¼L«É«ˆ›'›£i£h’¥Š…›£h«Ê£©›H›‚Ciaa!’¥«É´ ³ë³Ê«ˆŠ¥‚D’Åz#›&Ф’æ’Æ›&‚#’ūɫgŠCŠc£ˆ¼+¼+£G‚#𣼠+č¼mĮč¼+´ ÄlÌîč´ ³êČÌÍÌ­Äm´¯¬ñ´ò´ò¬ò¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬±¬±¤°¤°Œp”œ±¤¤ «Ê£©›‰›©›©“G‹“'›h›'’劤’Ä’å£h›&Ф››'’å£g«©³é£ˆ£g´ +¼K¼lĭĭȼŒ¼K´*¼K³ê«É£F››’ÆŠÆŠ…‚$i¢i¢rz#iÂi¢YAQqã‚EŠe’¦›£H’ÆŠdy¡q¢z›«h£G£‰›G’å‚Cy⊅£g£‰£‰’æŠ„Š¤‚d›’ĚĚä£g´ +«©’¤ŠB£´ ¼,¼,«‰£G’æ›'£H›’åŠÆ‚d‚CŠ„£G´nµµ´ò´ò¬ò¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬±¬±¬°¤°¤°Œp”pœ±œo›ª›g›ˆ£©£ê£Ê›hŠæ›H£h›'›'’æ’Å’¤Š¤šÄ›%›&’åŠÅŠæ›G›F£G›£ˆ´+¼L¼+¼K¼+´+¼K¼+›&›šå‚"zz$qãqÃiƒQ8 YAa‚aYAa¢0á Âa‚Q!YAqäzEŠdŠ„Šdy¡qayâ’ŚŚæ›šåŠ„Šd’Å£h£‰£ª“'›'’Å›'‚#‚CŠcšå’¤«G£GšåŠB𣳩£h›Hzea¢aãYÃjG›Š“zC‚Dz#qã‚$›&´-´Ñµ3µ3µ´ò¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬±¬°¬±¤°Œp”pœœO›‰›&›ˆ£ê£Ê›h’劤“'£h›G›G£ˆ›'’¤ŠƒŠc’Ä›&›&“‚czC››&›G£h«É´ ³é£G£G«¨«¨£h£g’ÄyÁiAiAaAaAqェY¤0áaÃjjiÂiã ÁÂiÁi¡YbQ!HàY!Š#ŠdŠD‚#’¤’Å’„ŠdŠd‚#Š„›'£‰«©£i›‹£Ë“Š„›G’劄šåŠcŠC’ƒ’ĚĢå«GrEA"bb%bEj†QÄbH¬o¼Ï¬ £h’ÆŠ…’å£h´n¬Ñ¬ñµµ3µ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬±¬±¬°¤°Œp”pœœO›Š›h£‰›G’Å‚cyÁqâŠÆ›G“’å’Å’¤ŠcŠ¥šå›£h£ˆ›G£ˆ«¨£ˆ’å›G«©£g£g£Fšå’ÅŠc‚‚#yâyÂzqÂz‚DŠÆ›ª£ìrg9"QÄjErErDr¡)riãiäY‚YA0€8€ã’¥’¥››’¥Š„ŠCyâ‚d’Å›'£‰«ë´N¬-’æŠc’Å›G’å’¤yâŠcšÅ£&«Gšæze ¡9cr…r¦rÈzÇbFƒK´ÐÍrÄÏ´L´L´ «É´ ´¯´ñ´ò´ò´òµ´ò¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬±¬±¬°Œp”pœœ.“i›H›h’æ‚CqÂiaqÛ'£©£ˆŠÅ‚d’Å›“’æ’å£h³ê«ˆ›&£G«É£h›&£&šå’cŠc’„‚#yâyâyÂq¡q¢‚d’Æ““«ê´L´¯‹kZRjfz…‚¦z…0Âb‚¦r$r$iãQ!8 @@€y⒤››'›'’ÅŠd‚#q¢zŠ„£‰´M´M›h’å“››&Š„q¢yâšå«h£GŠ¥rDr†Acb$rÇrÇ{{ZH‹­ÅRͳÅ0¼¼ÍÍ0Ìî¼Ï´ñ´ñ´ò´ò´ò¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬°¬°Œp”pœœO›Š“'’æ‚CqÂi‚i‚i¢Š¥£h£ˆ£h›'’æ’Å’å‚drq㊤£&›ŠÅ’å£GšÄŠczyÁy¢yÂqaAq‚‚q¢‚d›G›G£G›&´ ¼®¼ð´¯ƒ*RHb§z¦z§‚çY£‚Ɗ悦z…bYb0€ (@H ‚›£i£Š›Š…‚e‚Š¥“£‰´M¬-›H›G£h£h›'Š„y’¥«©£HrDjEzƃz„zÆs {){)R&ZH¤.ÕÔÕ³ÍQč¼LÌïÕpͼð´ñ¬ñ´ò´ò´ò¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬ÐŒP”p”œO›«“Š„‚Czi¢i¢‚D›G«É£ˆ£ˆ›’ÄŠƒ‚"‚C‚d‚Dz#Š¥›’ÅŠ„’¤‚#‚"q¡iAiaq¢q‚q¢yãy⊥›H«©£g£h£h«©´,ÅÍr´°bGRHs){‚ç‚æzǂ¦‹r†j%Ib(Â9$ `8`aB’Æ£‰«Ê›HŠ¥‚D‚D’Æ“£ª¬ ´M›G›'›G›G›GŠc‚C«Ê£‰a£bEj§zçzçƒr¦s s)Rg)b'¼ÐÕ³ÍQč¼,³êčÍͼð¬Ñ¬ñ¬ñ´ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬ÑŒP”pœœN›ª“ФЄ‚cz"z‚d›H£ˆ£ˆ›&Šƒ‚yÂy¡yÂyÂyã‚C‚#Š„’¤ŠCqa`àa!i!q‚z‚#‚‚‚C›£©›&šÄ£G£©£h£h«ÊÅ1Ír¬NI¥Rh{ŠƒiƒI{{{rèYä1AèA†a8¡Y!’ç«ì´-£ª“ŠdŠ…Š…“›h«Ê«Ê›G›G“'›G›'Š„’æ´,z†1#Rjès){){'{béRg1eI¦›ìÍQÍ0´,«Ê´,´ Ä®Í/Í0¼ð´Ñ´Ñ´ñ´ñ¬ñ¬ñ¬ñ¬ñ¬ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬ÑŒ0ŒPœo¤n›ª’æŠæŠ„‚#‚#‚dŠ¥›h£g£g›'’Ä‚#iAXàXàa i!i!iAqqqaXÀaiayÂyÂyãyŠd›'£i›HŠcŠCšå«©«©›G’Å«ÊÍ1Ír¤ bQæRFk sJbÈRgAÅ â!B )E@8ÁQЦ´-´M£Ë“‚D‚…Š¥’æ›H£Ê£Ê›h›G“›G›GŠ„£‰³ëYå!%)IæbÈk RFRgZÊRIjG›ÌÍrÍr«ë£‰´L¼l¼lÄÎÌîÍ0ŴЬ°¬Ñ¬°¬°¬Ñ¬Ñ¬Ñ¬Ñ¬Ñ¬±¬Ñ¬Ñ¬±¬±¬±¬±¬ÑŒ”¤M¬M£ë“'’Å‚d‚#‚C‚d’æ£h£ˆ£h£&šäŠ„zq¢YXàaiAiAi!i!ai`ài!q¢‚#ŠC’„ЄЅ›£h£©£ª£h›'›£g«¨«©›HŠÅ›H¼ŽÍr¼¯zÈ(âA¦9dAÆR')¢(ã9$Q¥Y¤Y„Ir£©¬ «ë›ЅХЯ›(›'«ë£Ë£©£©›h›h£h“«Ê£‰aÄAd9(ÂAe9†9ÇR(rÉŠè¬ ÍQͬ +«©³ë¼,¼LÄmÄmÌîÄÍ´m´´¬n¬n¬o¬¬°¬Ñ¬±¬°¬°¬°¬°¬¬¬¬°¬°Œœ ¬M´m¬L›‰Š„‚c‚cz#zŠ„›'£g›&’Å’„ŠcziaiAa XàYiAq¢qiAi!aiay‚ŠC’„’„’Å›£H£‰›H›“›'’ÅŠcšæ›G’ÅŠ„‚d›(¼¯ÍR¬M‹)rFr%rEjiåiärFz§‹ ƒ+jq£“'¬,¬ £hŠæŠç“(›i›i£Ê£Ê£ª«ê«ë£ª£‰›H«ë“‚é‚ér%iäjaÄj%‹£«¼®ÍQÄÏ£ˆ›G«Ê«©«©´ ¼LÄmÍÌ¼m¼m¼L´L´M´M¬n¬o¬o¬o¬o¬o¤N¤N¤N¬N¬N¬NŒœ ¬L´m¬,›ªŠæŠc‚d‚dz‚C›&›’Ä’¤›'›'’æziAa!aAi¢qÂyâqq¢y¡iaiayŠCŠdŠdŠC’¤šå›£G«Ê«Ê£‰«ª£h›Š¥’æ››’劤›(«ëÄÏÄ𼍴 £ª›i“(“(“Šç‹ “­zgi£Š…£ª«ë£ª“'“'›‰£Ë«ë¬ ¬ «ë«ë«ë«ë£Ê›‰«ë“H‹l‹*ŠÇ“I›i£Š«ë¼ŽÍͼ£h£h£ˆ£ˆ£h£G«©¼ŽÍ/Í/ĭčČČČÄl¼L¼L´,´,¬,¬,¬ «ë«ë«ë«ë«ë«ë«ëœ ¬,´L´L¬ ›ª“‚C‚C‚„z#z#“›››’æ’ÅŠ¥Š¥Še‚DzEz$zqãi‚iayÂyâqy¡‚#ŠC‚C‚#‚#Šd’ŚŒ¥£'£h£h£h£h›G›H£‰›H›H›'›'ŠÅ“£ª´+¼¼Ž¼®¼Ž¼®´M£‰ŠÇ“kzÉi£z£h£Ê£‰£ª£Ë£Ë«ë´M´m«ë«É´+´,´,¬ £ª£Ê“(‹*‚É›I´m¼¯ÄÏÄÏÄμ®´+´ ´ £‰£©«Ê«É«¨«ÊÄÎÍ0Ìî̭Ĭ̬ÌÍ̭ĭČÄl¼K¼+¼K¼+´ +³é³É³É³È³¨«¨³ê¬L´m´m¬M¤ ›‰ŠæŠ„‚#‚#z#‚d›&£h£h£ˆ›G’å‚Cq¢iq¡zz‚$Š…‚EqÃiayÂyãyã‚#Šc’¤’¥Š„Š¥ŠCŠ"’ÅŠd‚’…£h£‰£i£h£‰£‰›i›H›h£©£h›'›'£©´M¼Ž¼Ž¼Ž¬,›HŠÅ‹rGaƒz›'›H›i›‰£Ë«ë£ë¬M´M«ë£©¬,´´L´m¬ £©zDrFŠè›I¼ÏÅÅÄδ,«Ê£Ê´L´+´ «ê«É´ ´ ¼,ÌïÍÌÍ̬ċĬ̬̬ĬĭĭĭĭČÄl¼*¼ +»é³é³È³¨³ê³É´´¬m¬,£ë›ª“'ŠÅЄЄЄХ›'›&›'›£G£h›GŠ¥qâaBibyâyâz‚e‚dqÂi‚z‚#ŠdŠ„’¦’æ’Å’¥ŠdyâŠD›Š…‚ŠD›i›H’æ’æ›£G£©›i›‰›h£ˆ›'›G›'£Ê´L´m¬ ›&Šc‚ÈrFY!z›'“'“H›i£ª«ë¬ ¬M´Ž¬,«ë´Ž¼®´m´Ž¬ «Êrj&“I›H´MÄï´m¬ ¬ «Ê£‰£‰«ê«É«Ê³ë¼,³Ê¼ŽÍ0ĭ̭ČÄkċČČĭÌÍÌÍÌíÌÍĬÄlÄk¼K¼*¼ +¼ +¼L¼ +³¨´Ž´Ž´m¬,›ë“i“ŠÅФФХХ›&›’団h£©›’¤Šd‚#i¢qÃyã‚DХЅ‚…‚d‚#z‚C’„’„ŠcŠd“’æ’¥’¥šæ›’抄›´ ´,£h’¥Š„’Æ£h›G›g›G£‰£ˆ’抄“£Ê£‰’æ“‚§zDiÂa£‚d’æ›H›i›h£Ê¬M´m´n´n´Ž¼¯¼¯Äð¼Ï´L«ê’åŠç‹*£©´L´M«ë£ˆ«Ê£Ë›G›G£h«Ê´ «Ê£g«ÊÍ0ÍÄlÄkÄkċÄkÄkĬÌÍ̬Ĭ̬ČÄkČČÄk¼KÄlÄÎȼ*¼ ´m¬m¬M¤,›Ë“iпФŠc‚C‚CŠ„›&›&’Ä’Ä›£h£h’¤‚yáyâyây¡yÁŠ„’Å’Å’¤Šc‚#zŠcЄЄ’Å“›'’æ’Æ›(›H“Šd’Å£‰«Ê«Ê«Ë£ª›h’æ’å’ÄŠ¤’å’å›&›'ŠÅ“&›‰ŠÆ“’çŠÆŠÆzD‚C’æ“(›H›H›i¤ ¬-´Ž´Ž¼Ž¼ÏÄïżϴM¬ ›G“›‹«ë«ê«Ê£‰“'’æ›G›h›G£ˆ›'›’壉ÅͼLÄKÄKÄJÄkÄkÄKČČÄKÄJÄJ¼)ÄJÄkÄkÄKÄlÌîÄ­ÄkÄK¼*´m¬L¬,¤ ›Ê“hпХ‚c‚#‚DŠæ›H›’å›'£H£G£g›GŠcq¡qq¢qiaq‚#’¤šÄ’„‚C‚‚#‚#Š…’æ›'šæ››'›h£Š›HŠ¥zy‚›«Ê£hŠ¥yâzЄФ’śХ›&“'“'›G“'Šæ›HŠç‚†zDŠ¥““'›H£ª£ª£Ë¬ ´n´Ž¼Ž¼m´m¼®¼Ï´M¬ £©›H£ª¬ «ê£©£©£©«Ê£‰£ˆ£h›’Å£©´LÍՒÍ0Äm¼+¼ »é¼ ¼ »é¼ ¼ ¼ ¼)¼ ¼)ÄJÄKÄJÄkÄÎÄlÄkÄkÄKÄK¬m¬M¬,¤ ›Ê“hŠæ‚¥‚„‚d‚CŠ¥’æ’Ä’Å›&«ˆ«©«ˆ«gšå‚y‚#q¢aAaAq¢yâi‚qq¡iaqq¢y‚#Šd’„’„’Æ›(›H«Ë¬ “’Å‚qŠd’¤ŠcХХ’护’£’Ä’å’æ›'£h“›H“'Šç’炦‚…ŠÅ““›'›i›‰£ª›ª¬-´N´n´Ž¼¯¼®¼Ï¼®¬ £©£‰£Ê«ë¬ «Ê›h£©«ê£‰›G£G£h´ Ä®ÄÏÌïÌïč¼L¼K¼*¼ »È³Ç³¦³¦»ÈÄ)Ä*ÄJÄkČÄJÄkÌÎÄkÄ*ÄkÄkÄkÄk´Ž´m¬,£ë›ª“HŠæzdz#z#‚#‚C’Å’å’Åšåšåšå£&£F›’ƒyâyâ‚C‚#yÂqyÂq¢qqq@iai!i!yâ‚ŠdŠ#ŠC£‰«ì«Ë«ë«Ê›H“’Æ›&šåŠd’Ä’Å‚B‚"ŠdФФ“›‰““пп“‚…ŠÅ’æ“'““H›i›i£Ë¬-¬-¬M¼¯Ä.¼m¼«ê£¨£h«ë«ë¬,¬ £Ê£ˆ›&£h›'£h´ ¼m´+³ê¼mčĭÄÍÄ­Äk¼ ³¨«§³‡³†»È¼ Ä*ÄJÄkċ̬ÍČÄ*Ä*ÄJÄkČČ´m´m¬,£ë›‰“'ŠÆzdqâiÃr‚D’æ›&››šå’¤šå£&£šå‚Cqaq‚zqiAi i!aAa!i!i aXÀXÀhà`ài ii!‚E›H«ë´,´,¼ŽÄ®´,›'ŠcâyÁyâ‚CЄЄФ›'“'›H›‰£‰›H“'ŠÆ‚dХХ’Å“'›i£©«ë´,´M´M´n´Ž¼Ž¼®¼®¼£Ê›G›£ª«ê´ ´,£©›&›&››’å›'£H£«ˆ³ë´ ĭĭȼ*«È«§«¨«§³‡³§³È»é¼ ÄJÌÍÕPÌí̌ÄJÄ*ÄkČČÄl¤ ¤ ¤ ›Ê›‰“HŠÆzdriÂiãze“›'’å’Åšå’Ä’¤›£G£GšåŠCâ‚‚"‚yÁq¢yã‚#zqâqqai XÀ`à`à`àii!iq‚#𿛣H«ˆ£h›yÂq¢q¢zЅХХ›'£‰£Š›i¬ «Ê›HŠæ‚„z#r‚dŠ„’Å›H£ª«ë¬,¼Ž´n´n´n´m¼®Äï¼®¬ £ˆ’䣉´ ´ ´ ¬ +«©›G£ˆ£h›’æ’æ«‰«¨³ÊÄ­ÄÍÄ­¼l´*´ +´ +´ +³é³È³Ç³Ç³È»èčÍ/ÌíÌì̬Äkċ̬ĬČȤ ›ë›Ë›‰“H‹‚Å‚dra¢a£iäŠÇ›'šåšåšÄ’„ŠC‚C›£Gšå’ƒáy¡yy¡q¡y‚D’¥’„Šd‚CyâyÁqai i!i!iAqay¢âyÁqi@qAy¡ŠdŠC‚z‚#ЄЄ’ÆŠÆ“›h£ª£ª£ª£‰“ŠÅ‚dr‚D‚dЄХ›'£©£ª´,´m¼Ž¼Ž¼Ž´,¼m¼ŽÄ®´+£ˆ’ä£G¼M´L«ê«Ê«ë£©£ˆ›'£g´,¼L³©«ˆÄ­ÌîĭĭČÄlČČÄk¼K¼*¼ +»è»éčĭÄk̬̬ÄkČ̬̬̬ČȬM¤-£ì›Ë›‰‹‚dzCriÃaÄj%‹›hšå’¤’¤šåšåŠc‚C‚#ŠcŠcâyÁyq@yŠ„’¤’¥’ÅŠ¥‚#‚CziAqqaii!qq¡yâŠ"’cŠ#‚#Ââyâ‚’¤’æ›’æ›'’棊£ª›i£ª£ª›i“'“’抄’¤Š¥‚d’æ›'£‰£Ê«ë´M¼Ž´M´m¬ ´,¼m¼m´,«©›&£&´ ´,«ê´ ´+³ê´+«ê«ˆ³©³Ê«Ê¼lÍ/ÌîÄÍÌÍĬĬÌÍÌíÌÌȼJ¼KÄ­ÄïÄk¼ ÄJċÄkÄkÌÍÍÍÌÍ̬̬¬L¬,£ë›ª›‰“i‹(‚¦ri¢a£aÃrE’æ’¤ŠcŠCŠc’„šÅ’Å’¥šæ’æŠdyây€qayÂyââŠC’¥£H›Gšåšåz#iAiai aiAqq‚y¢‚’ƒšåŠ„ŠCŠd’¥Š…›(£h£G£h“›H«Ë«ë£ª£Ê£ª£ª›h›'ŠÅŠ„’¤Š¥’Å’æ›i£Ë¬ ´N´N¬-´M´M´M´M´M¼m«ë’ä«g´ ¼m¼L«ê«©«©³ê¼L¼+³©«‰´,Í0ÕqÕPÍPÍ0Í/ÍÍ/Í/ÌîÄÎÄïÍrÍ0¼*»È¼ ÄJÄJÄkÄ­ÍÍ/ÍÌíÌÍÌͬ,¬ £ë›ª“'пЯ‚Æ‚Çz‡rFiår%“’ÅŠc‚‚Šc’Åšå’åšå›'›Š…‚y€i`àqA‚’„’Å›’„’ƒšåŠcyÂqaaq‚yâq‚q¢‚#Šc’Å››H›H£h›(𯒄’¥›'£‰£h£©«ë«ë´,¬ £‰›'“Š¥ŠdŠ¥’æŠÆ›i£Ë´o´o¬ ´¼Ž´,¬ ´M´M¼n´-šå«f´,ĮĮ¼®´+«Ê£h´ +Äl³ê«ÊĎՑÍPÍÍÍÍÌîÌîÍP͒Írżl³é³È³È»È¼ ¼)ÄkÌÍÌîÌíÌÍÌíÌíÌí¤ £ë£Ê›©“H‹‚„z#qãrrFrg‹K£Ì›i’ÅŠd‚CŠc’¤£&›šåšÄšÄ’Å’¥‚Cyâi `àayŠCšÄŠc‚Š’c’cŠ"y¡qaqqÂq¡y¡Š„£G£Gšå›'£H£HšÅŠ„ŠDŠ…’Æ£‰£i£ª«ë´ ¬ «Ê£ª“Š¥’犆‚e£Š›I›i´N´o´.´.´N´n¬ «ì´-´M¼Äð›G›«ÊčÌïÍÄï´,«ê´ ³ê«F³êÍՑÍ/ÌÍÌÍÍÍqճճ͒ͼl³é«È³È³§«†³†³Ç¼ ÄkċċÄkÄkĬÌÍÌí£ë£Ê›‰›ˆ“'ŠÅ‚d‚#qâi¢a‚a£rF‹ ›j›I›I“)“)“(›(›H£'£G£'›’æ’¥’Æ’Æ‚fyäqƒz’æšæŠ…‚D‚$‚$’…’„ãyã‚DŠdŠd’¥’Æšåšå’Å£H›’ÆŠÆ’Æ›h›'£h«ª«ë«ë«ë£ª£ª£Ê£Ë£Š›i“(q£‚F›Š«Ë´.«Ì«¬£Ì«ì«ì£Š«ì´ «ì´-Í´ ›H³ê¼lÄ­ÌÎÄμ+¼lÄ®«ˆ£&ÄLՑÞÕÓճ͓ÍQÍĭČÄk¼kÄk¼K¼*¼ +³È³‡³§»ÇÄ ÄJÄkÄJÄ*ÄkČĬĭ£ë›ª›‰›h“H“'ŠçŠÆ‚†zfz‡z‡rg‚雋›i›H›I£Š£«£Ë£ª£‰´,´n´n´o´N´N¬ «í¤›Œ“›Î´o¼°´o¬›­›l«í´.«í¬ «í£Ì¬ ¬ £Š“)’ç“ЦЅ’æ’æ’Æ›'›'›'›H£h«Ê«ë«ë£Ê«ë£Ë«ë«ËЦPàq¤rˆ›J«‹’邈›)›J««««³ì£k“¼N«ì£h³ê³ê¼LÄl³ê£G£i´n¬-´-ÄÏÕõÖ6͒ÄμK¼*¼ +¼*¼K¼l¼lČčĭ¼l¼K¼L¼*¼ +ÄJČČÄkÄkÄkČĬĬ›ª›ˆ›g“&ŠåŠÅ‚„z#z$qãa£a‚a£yå’È›i›'šå’Ä’ƒŠbŠB’£š£’ƒ’‚šåšåšå’¥’Æ››)›j“*ŠÈ›J´¼¯´N£í£Ì´.´N´N´o´N´o¼°´o´o´¤‹*‹)‹‚§ŠèŠÇzqã‚#’Æ“›H£Š«Ê«Ë«Ë«Ë£Ë«ÊzeH€0@‚%¢ç£¢çšÇ£ ³í³¬«‹«‹«j«Š›i£‰£ˆ«©«©šå£g«ê´n¼Ž¼ÅՒÞ5æUݲÍÌÍĭČČĮÍÍ0Í0Í0ÍÄϼ¼m¼L´+¼,¼lÄlÄlČČĬ̬Ị̀룪›‰›ˆ“GŠÅ‚„z#qãi¢a‚YBY!pâ‘æ›)£h£&šå’Ś曣H£h«ª¬ «ì«Ë£Š£Š›I›’Æ’ÆŠ¦‚ez‚$’„’¥Š…‚DŠe’¥’¥’曫«¬ £Ë“›i¬ ´,¼m«ë›H«Ê£Ê‚…Š…“’çzŠ…£‰«Ê£ª£‰£Š£Ë«ë“HqÃP€P`P€`ÁŠ%¢¦š†£)šèšÇ’†’Ešç£©«É£g’Å’Å›G³êÄÎÕ²Õq¼LÄïÝóæVæwÞ5ÕÓՒճՒÕrÍ1Äμl¼*´ +´ +³é³é³È«§£g£‡«¨³È¼*ČĭÌÍÍÍ £ë£Ê›‰“G“'“ŠÅ‚cz#qãiÃiÄiʼn皉£‹£ë«Ë£Ë«Ë«ª£Š£h’æ›(£h›'›'›'›››šæ’Æ’ç›H›(’Ç’è›i¬ ´-´-´n¼°¼ñÅÄò¼¬ ¬ Įč¼L¼LÄ®ÄÏĮĮĮ¼m«Ë›i›(£Š«ë«ë£ª£‰£ª£ª£Ë£ª“i¢H`H@0H`¢DäYC’%qƒP€i‚›H«Ê«ˆ«É››ČÌîÌîÍÕqÝõÞWæ˜æ¹æÙæ—ÝôÕPÍÄ­¼ «§«¨³ê´+´ +³ê´+¼K´+«é«¨«‡«†³È¼*Ì¬Í Í.Õ/ÕN£ë£Ê›h““'“G“'‹Šç‚Ç‚ÈzȂˆ‘§™ç’É£¬«ë£i›’Ä’ƒ’cŠBŠB’ƒ’Å’ƒŠ!ÀÀ y€Á‚Š…’Ç’ç›(›I›I›I›j«Ë«‰«‰£H££G³ë´ ›HŠ¥››(’Æ’æ£h£‰£ª£h«©«Ê´ «©››H£H›H£‰£Ë«ì«Ë£Š“z$`à( Xášy!q"ŠaqÓ£‰£g£G«©¼K¼L¼+¼ +¼+ĮՒÝÔÞæVæVæVæUÞղՒÕqÍÄμ´L¼l¼¼¼Ä¼l¼K¼*¼ Ä*ÄkÌÌÕ ÕÌíÌíÍ ¬,¤ £ë›Ë“i“H“'Šæ‚¤‚dzerEi䀢h¢bŠÇ£h£i›(šå’¤ŠC‚"ŠCŠ„’Å›'£H›(›)›)šè’¦’†’Æ’…’¦Š†“£«£««Ë«Ë´N´N¼N¼Íį¼Ð´´o¬ ›k“)›‹›j‚‡qÃq¢Š„Š¥‚zŠdz‚e“›››H£Š£ª›i‚eháB‰‚y‘ãy†›'£h£h›£G£G£«ˆ›'£‰«ÊÄ®ÕQÕ³ÞVæwæwæ—æ˜æwÞ6ÞÕÓÕrÍQÍQÍQÍQÍ0ÍÄ­¼KÄJÄKÄJÄJÄJÌk̬̬ÄkċÌÌÍ ¬,¬ ¤ £ë›iŠæŠÅФ‚„‚czCr#iãHÁh@ (âaå›j£«£Ë£ª£h£H›H›H£‰«ª«©£&’¤Š„ŠDŠEІ’È››››)›(£i£H›£H£G£h£Š«‰³ë¼n¼nįÄÏÄmÄ®´,´ «Ê£‰›ŠÆ›j›I‚EЦ“ЦЯ›(›(›(’ç›i£i£«£ªäaqB£Š¦£i£H£'£G£g›&’¥“«©«©ÄÕQÍQÍRÕÔÞ6ÝôղݲÝÑݱÕOÍÕPՒՒÕrÍQÍQÕqՒÍrÍÄ­ÄkÄ*Ä)Ä*Ä)ÄJÄJ¼)ÄkĬĬ£ë£ê£ª›ª›h“'пФ‚d‚czCz#r8á@a(ãIƃ*¬.´o´o¬ «ˆ£’¤’£š¤š¤›£H£i£i£išæŠdÃ‚$’ÆŠ…Ц›I£‰£ª´ ´-´N¼°¼¯ÄмM«‰šÅŠ#yŠdŠdšÅ«‰«‰«Ê´ ´ «©«ª«ë«ë«ª£i£‰£Š›I“›H›I«ª¬ ›y‚iy¢’§£Š£H›››«ˆ³Ê«ˆ´ ¼LččÄmÄÕ´æºæÚæ¹æ˜æVÞ5ÝóÕPÄJÄ)ÄjÄkÄkÄkÄÎÍ0ÍQÍQÕqՒՒÌïÄK»è»È¼ ¼)¼*ÄkČȬ,£ë›©›‰›H“ŠåФ‚„‚c‚czCr#aÄ9d1d9e9…Z'“k´.´N¬ «ª£i£H£Š¬ ´N¼n¬ «ª£i›'šç›’çŠeŠE’Ç£ª«ì«ì¬ «ª£‰«ë«hšÄšÄ£³ë´ «‰£i’ÆŠD‚‚#ŠeŠeŠŠC’„’…››££i£H£‰£H£i£Š›H£H£Š«Ëzq‚’¥£i£h£G£G›£G³É³Ê³Ê«ˆšå’¤«©Ä®ÅÕ´ÞWæ˜æwÞ5ÞÞÞ5ÞÕ³Í0ÌîÌÌÄk¼ »è¼KÄÍÍÍÍÍ0Í1ÍQÍč¼*¼)¼*ÄkČĬ´m¬M¬ £©“G’åŠÅŠ¤Šƒ‚d‚d‚…‚†z†jI"0Á)Qæzꛬ´N¼o´N´-´-¬ £išå’¤’ŚĒ¤Š"‚ŠD’…І’è››’…’¥’¥›£H«i«‰³ì³ì«‰£¢å«G«ˆ«‰³ë´,«Ì£išç’Æ’¥‚#y¢Š#Š#y‚šæ›'Š#’¦£HŠd’Æ£h£I‚Šd›££š¤£'£G£'š¤šåšåšå›'£H´ ÄÏÕõÞxÞ6ÞÞVÞVÞ4ÝóÝÒՑÍÍ1ՓՒÍ0Č»È»éÄlĭĬȼJ¼ +¼KÄÎÍ0ÍÌðÄμk¼*¼K¬ £Ê£©£ˆ›G“’å“’æŠÆ‚…zDzDr$r$iäQc1  ¡Q¤“J´N¼´o¬ £HšåšÄ’¤’¤šÅ›£h£Š£H’¦‚Â‚ŠCŠd›I£Š«ì«Ë«Š£HšÅš£šÄ£'«ª´ ³ë³Ê«ˆ£G£HšÅ’cšæ£hšÅ’ŚŚçŠdŠ#šÆ›Š…’Æ›››(£HriB’…šÅ’„’„’c’„šÄšå’¤£«G«g³É¼MÍ1ÕÕÖÖÖ6Þ6ÞÞÞ4ÞÝóݲÌî¼ +¼*ÌÎÍPÍÄl³é¼ ĬÌîÄ­¼*³È³§³§³§³é¼lÄÏÄðÄÏÄΫë£É£ˆ›g›G›'“’åŠ¥Š„‚d‚dzDqãiÂYbQ!(€@)A…R‹k´.´.¬ «Ê›šÄ›£i«ë´ «Ê›'’…ŠD’¥’Æšç’…šç›(šæšæ’c‰à’B£«ª´ ³ì«‰£š¤š£š‚£šÅ’BŠ#Š#’Cš¤š¥š¥šÆ’„’ƒ’ƒ››£'šå››)’èiƒib’„šÅš¤š¤šÄ££«F££££G³ë¼ŽÍsÖXޙÞxÞWÖ6Þ6Þ5Þ4ÞÝóݱͼ*³é¼*Ä­Ä­Äl¼L¼lČÌíÍȼ ³È«‡«f«f«†³È¼Kĭͣʣɣˆ£h›&›’¤ŠcŠc‚B‚"zzrqãiÂa¢Qƒ1# ã)9DI„z§¬ ¼o´N´ ´M«ì£ª«‰£G›£H£išå’cŠ!‰áŠDŠeŠCŠ"Š"š¤£'«ª«Ë«‰£šÄš£š£šÄšÄ£'£(šƒ££'’ƒ’B’š¥’C’šbšbšƒšÄšÄ›’eІ’§’†ŠEã‚’d’ƒš¤š¤š£¢ä£££&«g´ ¼®Õ”ÕöÍöÖ7ÞXÞxÞxÞ6ÕôÝóÝÒݰݐÕ/ÄK³é¼K¼K¼)ÄK¼KÄlÄ®ÌîÌÍ̬Äk¼ +³È«‡«‡«§³È«È«¨«È£Ê£‰›G›’Ã’ƒ’ƒŠB‚!‚!‚zqâqÂi¢rrfjIB9eIÆ(â ¢I擬´o¼°¼o««šæ’¤šäšäšå£G£G¢äšƒ’dŠCŠC‰á Š›«Š«‰£Gšåš£š‚š£šƒšå£&«‰£išÄšæšæš¤š£šƒšÅšÆ’ƒšƒ’ƒš„’dŠ#Š$‚ÃŠ$ŠD’†’†Š$ÂÂŠ"’Cšå¢ä££%«g«©´ Äð͓ÍÕÖXÞxÖXÖXÞWÞWÞWÞ5ÝóÕ²ÕpՐݐ̭³È³È³è³È»èČĬ¼JÄlÄÎČÄkÄK³é«f£E£f£f£f«‡«§£Ê›ˆ›G’劃Šb’ƒ’£Šc‚"‚"zqâqÂiÂiÃiÃiÄaÄA"@!9¥A¦1DQ¤“J«ì´.«ì£i›£&£šÄšÄ𣒥’æ’B‰àŠ"šÆ›I£HšÆš¤šƒš‚š‚š£š‚££«i«h££G£'𿣣£'›(’Æ’Å’¥ŠdŠ#âŠ‚‚Š#’d’…’¦’Æ’e’CŠ"Š"’ƒ£&«ª³Ê«©´ ¼MÄ®Å1ÕöÖÍöÖ7Þ7ÞWÖ6Þ6ÞVÞ5ÞÝÒՐÕOÕpÌí³ê«‡³§»è¼ ÄJÌÍÌÍČčĭȼ*³É«ˆ£F›šä£$£f³É£Ê£©›G“Ф‚B‚"‚BŠcŠBŠB‚"yâqâqÂi¢i¢YaaÃaåIÅ1D ¢@` ¡Yċ «ì´-´-«Ë£h£'£&šåšÅ£'£’ƒ’dšç›’…ЁáŠ"’Cšƒ¢Ã¢ä£«h«ª«G¢Ã«&«ˆ£&«h£&«h«i£i£I›’¥š¥’C’¥’cŠC’¥šÅšæšæ›šÆšæšåšåšÄ£«ˆ´-´M¼MįÍ2͔͵ÕöÖ7ÖÍöÖÖÖÕõÕôÝóÝÒÝÓݲÕoݐÍ/´ «‡«‡¼ +ÄkÄkċÍÍ.ÍÌîÍȼ +´ +³ê«¨£f«f«‡³é£©£©›g“ŠÄ‚czzzz"‚yáq¡iii¢rrfrfiäI@@```(ÂACYåz§“J«Ì«ì«Ë£i›&£šåšå£i£HšÆŠy`yay¡y`‰Á’Cš¤£'³ª¼ ³Ê³©³ª³©«g«ˆ«ˆ«‰«‰³Ë«ª«‰£'££H›šåš„šå£&£G£H££H£'££&«G«h«ˆ³ë¼mįÄðÍ1͔ÍÕÕöÕöÖ7ÞXÖXÖÖ6ÖÕôÕÔÕ³ÕpÕNÕOÕpݱՑ¼+£F£F³É¼KÄkÄkÌÍÍ.ÕNÕoÍ.ÌîÌÍȼJ¼ +»é¼ ¼*ċ£Ê£É£©£ˆ›h“&Ф‚C‚"zyáqÁi¡iÂr%zfr%i¢YaYAQAHà `@@```(â0âjŠé›‹£Ë«ª›£G««£'šå’ƒ’!ЁÀÁŠ’Bšƒšå³ìÄn¼MÄ-ÄM¼,»É³ˆ³©³Ê³Ë³Ê³Ê³Ê³©«h«ª«‰«G£££'«H£G£'£G«h«‰£&«g³Ê³É´ ¼MįÅÍs͔͵ÍÕÍöÖÖÖÖÖÕÕÕÔճՑÍ/ÌîÌÌ̋ÔíÝÒÝÓ¼l£g£%«‡³é¼)¼*ÄkÌíÍ Õ.Í.Õ.ÕoÍċÄkÄkċ̬Ìì¬ ¬ ¬ £Ê£©›ˆ“&’劣‚!‚!‚d‚¥‚…z$iÂi‚a‚a‚YbYBQ!@à(€@@@``a1I#zf£¬£«£««‰šåšä£¢ä¢Äš£šÄ£&«F«G«‰¼-ďÄmÄnÄnÄnÄ,³©³‡³g³ˆ³©³ˆ³©³Ê³g³ˆ«ˆ«F«F«G£G£'«h«h«ˆ«G«F«g³©³É³ê¼,¼n¼¯ÅÍR͔͵ÕöÖÖÖ7Ö7Ö7ÖÕöÍ´Írżl¼KÄKÄKÄJÌÌݐÕÓ¼®£ˆ£F£E«‡³È¼ ¼*̬̬̬ÌíÍÍ.Í/Í ÌÌ̬̋̋̋£ª£©£©£©£¨£ˆ›F’ä’Ä’Ä’ÅŠÅ‚Byáq¡iÂiÂi¢a‚a‚YbYbQAI8  ```(Âr'‚¨ƒ “*’Æ“£i£G«g«F«G«©³Ê³ë´ ¼nď¼n¼nĎ¼nÄnÄM¼ »É³‡³F³F³g³ˆ³ˆ³g³f«f«%£«h«F«g³©³¨³ˆ«g³g³ˆ³©¼ ¼M¼ŽÄÐÄðÅ1ÅR͔͵ÕÖÖÖ7Ö7ÖXÖ8Ö7ÕöÕõÍrÄïĮĭčÄKÄlÕ.ÝòÝÓÄï´ ›F›£E«§³è¼ ¼*¼ +¼*ċČĬĬÌíÌÌ̌ÄjÄJÄj£ª›‰›ª£ª£©›g›G›g›&’ÄŠb‚!‚yâqÂqâqÂiÂi¢a¢aa‚YbQAI@àA8áA8áaa1DIdaDI#Ycr‚‡“)›I›H›«ª««£«›I£‹«Ì›ŠŠçŠÇ’Èš§¢È«)«Š«ª³©³©³¨³g³‡³f³g³g³g«g³ˆ«G«F³ˆ³¨³¨³‡³ˆ³¨»É¼ ¼M¼°ÄñÄñÅÅ2ÅS͔͵ÍÕÍöÖÖ7Ö7Ö7Ö7ÕÕÍ´Í´ÍrÍ0ÄîÄl¼ Ä*ÕæÞ5ͬ ’ÅŠBšÄ£E«‡«‡«‡«É³é¼KÄkÄlÄkČĬĬċÄkÄk›‰›i›‰£Ê£Ê£É£ˆ“%’£ŠbŠBŠB‚"zzqãiÂi¢a¢a‚a‚a‚Y‚YaQAQBIBI"QcI"`@!A@P¡aBrzf‚‡‚f‚§ŠÇ‚§‚†z%‚‡richÂxaˆA˜âˆ@x`‚E›H£i«‰³©³©³©³É³É»ë³Ê³É³¨³¨³¨³¨³¨³É³ê³ë¼,¼n¼°ÄðÍ2ÍSÍsÅsŔʹÍÕÍöÍöÍöÖÖÕöÕöÍÕÍsÅ1ÅÄïĭČÄ*Ä)ÌÌÝÒÞ4Í0´ £‰Š¤ŠbšÃ£%£f«f«È³é¼KČČÄkÄkċ̬ÌíÌÍțh›©£ë¬,£ê£©£ˆ›F›’å’£ŠB‚"zqâqÂqÂiÃiÂi¢i¢a¢a‚a‚a£iÃiäj%rFj(¡ Â1Daa8@PY"aciƒqåqäiƒabicqÅ`âXa`€A™Cx `PPÁzDzEz%‚…“›I£i«‰£‰«Ë£i£h«‰«©³Ê«Ë«Ë³ë´,´N¼¼¯ÄðÅÍR͔ÍÕÍÕÍÕÍÖÍöÍöÍöÍöÍöÍöÍöÍÕ͵͓Å1Ä𼎼L¼ +»éÄJÌíݱÞÄ£©“(Šc’‚›£g«‡«È³é¼*¼J¼K¼K¼*Äk̬ÌíÌÍĬ›‰£ë¬,¬,¬+«ê«ê£Ê£©£ˆ›&ŠƒŠB‚zyâzqâqãqÂiÂiÃiÃiãrrze‚Ç‚§zfY¤ Á1D8@8@a@APXaha`aP`Pahãh‚X`€ˆax¢P`Q"PáabriÄrzEЧŠÇŠÇŠç“›i‚e’ç›h£‰«Ê«ì¬ ´-´M´n¼ÄÐÅÅ2ÅS͔ÍÕÕöÖÖÖÖÖÖÖÍö͵ʹ͓ÍsÍQÄðĎ¼L»é¼ ÄJÕ Ý±ÝÓÅ«ë›h“Šƒ’‚›£F«‡³È³è´ ´ +¼K¼l¼KÄkĬÌÍÌíÌ̛‰£ë´m´Ž´m´M´L¬ «ê£ˆ›F›’£ŠBzz#z#zrqâiÂiÃiÃrzDz¦ƒ‹ ‚è‚Çzfb ¢a` ˆX €Â„`pˆxp p!p xˆˆxpAaY£aƒXÁiƒiÄqäzE‚†ŠÇЦŠÇŠÇ“)“ze“I£ª£ª£Ë¬ ´-´N¼¼¯¼°ÄðÅ1Ís͔͔͵ÕöÖÖXÖ8Ö7ÖÖÖÖÍöÍÕ͔ż޴,³ê³É³È¼ +ÄkÌîՐÍP¼£É›'’åŠcŠB’£›%«‡«§³§³è¼kÌîÍ.ÌîĬĬ̬̬̬¬ ¬M´m´m´¼Ž´L¬ «ê£©£g›’ÄŠdz#z"z#zC‚d‚d‚C‚d‚¥Šç‹)“j“j‹I‹)ƒ‚èz§@Â@ a0@ˆ¨¨A²&š§Š‘DÂˆax €ˆˆâyi"iÄiäi¤iƒ`ái£rr‚fЧ‚†Š§Šç“›jŠÇƒ›««ì«ë«ì¬-´N¼¼¯ÄÐÄñÅÅ2ÍsÍ´ÍÕÍÖÍöÕöÖ7ÖXÖXÖ8Ö7ÖÖÖÍöÍÕÅ2¼´,«©«ˆ«§¼ Ì­ÕpձͼL«É›&ŠÄ‚"yáŠA’Û%£E«†´ ČÌíÕ.Í.Í ÌÍ̬Ĭċ¤ ¬N´Ž´Ž´m´l´L´,´L¬ £Ê£g›F’å’å’Ä’ÅŠÅ’æ“H“(“H“H“‹›Ì›í›Ì›Ì“«“j‹I‚èzF€@`H X hhÅ« «j£)’f€xxqciär%r%rqäi£`ái‚rzE‚fze‚†Šç““(›I‚¦›Ë£Ë«ì¬ ¬-´N¼o¼¯ÄÐÄñÅÅ2ÍRÍS͔ÕÕÕöÖÖÖÖ7Ö7Ö8ÖÍöÍöÕöÍÕ͓Å1¼Ï¼L³ê¼ +¼+ČÕ.ՑÝóÍP¼´ +£‡›%ŠƒŠBŠBŠƒ’Ä›%£‡³è¼)ċÌÌÍ ÍÌíÌÍÌÍÌ̬n´¯´¯¼¯¼®¼®¼´L´M´M´L¬ «ë«ë£ˆ›G›H›i›ª£ì¤ ¤.¤.¤.¤O¤.¤.¤ ›Ì“«“‹‹I‹)‚§a„(Âaa@@0` ˆ€xâqƒrrEr%zEzfzEzqäaarz%zEz$zz$ŠÆ›(‚§“£ì«Ì«ì´-´n¼¼¯¼ÐÄðÄñÅÅ2ÍSÍsÅRÍs͵͵ÍÕÕöÖÖ7Ö7ÖÍö͵͓ÅRÍ1ÅÄïȼ ¼*ÄkÌÍÍÕpÝÒՑÄμL«É£F’䊃ŠBŠƒ’£’ä£F«†³Ç¼)ÄkĬÄÌÌíÌÍÌÍÌí¬M¬M´m´Ž´Ž´L¬,´M´M´L¬ ¬,´M´M´n´´´´°´ñ¼ò´ò´ñ´Ñ´±¬¬o¤.¤ £í›Ì“‹“j“j“j‚Èj%YÄI„IcIcQƒi„yäz%z†zfzF‚f‚fze‚fzezEri£X¡aCr$zyÁq`i i`z%ŠÇ«ª«ì¬ ¬ ´N¼¼°ÄÐÄðÅÅ2Å2ÅRÍs͔͔ÅsŔ͵͔ŔŔ͵ÕöÖÖÍÕÍ´ÍrÄ𼍼ÄlÄ*ÄJĬÌîÍÍ/ÝÒՑÌμK«É£ˆ›ŠbŠ!ŠBŠ‚’Ä›%£f³È¼*ÄkċĬĬČČÌÌ \ No newline at end of file diff --git a/ili9341/images/Tortie128x128.raw b/ili9341/images/Tortie128x128.raw new file mode 100644 index 0000000..0bc8610 Binary files /dev/null and b/ili9341/images/Tortie128x128.raw differ diff --git a/ili9341/images/blinka45x48.raw b/ili9341/images/blinka45x48.raw new file mode 100644 index 0000000..5424950 Binary files /dev/null and b/ili9341/images/blinka45x48.raw differ diff --git a/ili9341/images/kb0.raw b/ili9341/images/kb0.raw new file mode 100644 index 0000000..4cbf604 Binary files /dev/null and b/ili9341/images/kb0.raw differ diff --git a/ili9341/images/kb1.raw b/ili9341/images/kb1.raw new file mode 100644 index 0000000..a81f269 Binary files /dev/null and b/ili9341/images/kb1.raw differ diff --git a/ili9341/images/kb2.raw b/ili9341/images/kb2.raw new file mode 100644 index 0000000..6b170f3 Binary files /dev/null and b/ili9341/images/kb2.raw differ diff --git a/ili9341/images/kb3.raw b/ili9341/images/kb3.raw new file mode 100644 index 0000000..6747074 Binary files /dev/null and b/ili9341/images/kb3.raw differ diff --git a/ili9341/images/kb_sprite_320x768.raw b/ili9341/images/kb_sprite_320x768.raw new file mode 100644 index 0000000..0b717ae Binary files /dev/null and b/ili9341/images/kb_sprite_320x768.raw differ diff --git a/ili9341/images/keyboard_blank.png b/ili9341/images/keyboard_blank.png new file mode 100644 index 0000000..d7205f1 Binary files /dev/null and b/ili9341/images/keyboard_blank.png differ diff --git a/ili9341/images/kururin_anim/kururin1.raw b/ili9341/images/kururin_anim/kururin1.raw new file mode 100644 index 0000000..e6499b4 Binary files /dev/null and b/ili9341/images/kururin_anim/kururin1.raw differ diff --git a/ili9341/images/kururin_anim/kururin2.raw b/ili9341/images/kururin_anim/kururin2.raw new file mode 100644 index 0000000..42c6f58 Binary files /dev/null and b/ili9341/images/kururin_anim/kururin2.raw differ diff --git a/ili9341/images/kururin_anim/kururin3.raw b/ili9341/images/kururin_anim/kururin3.raw new file mode 100644 index 0000000..d05d857 Binary files /dev/null and b/ili9341/images/kururin_anim/kururin3.raw differ diff --git a/ili9341/images/kururin_anim/kururin4.raw b/ili9341/images/kururin_anim/kururin4.raw new file mode 100644 index 0000000..4c1d21b Binary files /dev/null and b/ili9341/images/kururin_anim/kururin4.raw differ diff --git a/ili9341/images/kururin_anim/kururin5.raw b/ili9341/images/kururin_anim/kururin5.raw new file mode 100644 index 0000000..e36be66 Binary files /dev/null and b/ili9341/images/kururin_anim/kururin5.raw differ diff --git a/ili9341/images/kururin_anim/kururin6.raw b/ili9341/images/kururin_anim/kururin6.raw new file mode 100644 index 0000000..6ad4f76 Binary files /dev/null and b/ili9341/images/kururin_anim/kururin6.raw differ diff --git a/ili9341/pwn_search.py b/ili9341/pwn_search.py new file mode 100644 index 0000000..7dcce3f --- /dev/null +++ b/ili9341/pwn_search.py @@ -0,0 +1,109 @@ +"""Search online for pwned passwords.""" +from machine import Pin, SPI +from hashlib import sha1 +from ubinascii import hexlify +from urequests2 import get +from network import STA_IF, WLAN +import gc +from xpt2046 import Touch +from ili9341 import Display, color565 +from xglcd_font import XglcdFont +from touch_keyboard import TouchKeyboard +from time import sleep + + +class PwnLookup(object): + """Checks if password is pwned.""" + + def __init__(self, spi1, spi2, dc=4, cs1=16, rst=17, cs2=5, rotation=270): + """Initialize PwnLookup.""" + # Set up display + self.display = Display(spi1, dc=Pin(dc), cs=Pin(cs1), rst=Pin(rst), + width=320, height=240, rotation=rotation) + + # Load font + self.unispace = XglcdFont('fonts/Unispace12x24.c', 12, 24) + + # Set up Keyboard + self.keyboard = TouchKeyboard(self.display, self.unispace) + + # Set up touchscreen + self.xpt = Touch(spi2, cs=Pin(cs2), int_pin=Pin(0), + int_handler=self.touchscreen_press) + self.wlan = WLAN(STA_IF) + + def lookup(self, pwd): + """Return the number of times password found in pwned database. + + Args: + pwd: password to check + Returns: + integer: password hits from online pwned database. + Raises: + IOError: if there was an error due to WiFi network. + RuntimeError: if there was an error trying to fetch data from dB. + UnicodeError: if there was an error UTF_encoding the password. + """ + sha1pwd = sha1(pwd.encode('utf-8')).digest() + sha1pwd = hexlify(sha1pwd).upper().decode('utf-8') + head, tail = sha1pwd[:5], sha1pwd[5:] + + if not self.wlan.isconnected(): + raise IOError('WiFi network error') + + hits = 0 + gc.collect() + with get('https://api.pwnedpasswords.com/range/' + head) as response: + for line in response.iter_lines(): + l = line.decode(response.encoding).split(":") + if l[0] == tail: + hits = int(l[1]) + break + gc.collect() + + return hits + + def touchscreen_press(self, x, y): + """Process touchscreen press events.""" + if self.keyboard.handle_keypress(x, y, debug=False) is True: + self.keyboard.locked = True + pwd = self.keyboard.kb_text + + self.keyboard.show_message("Searching...", color565(0, 0, 255)) + try: + hits = self.lookup(pwd) + + if hits: + # Password found + msg = "PASSWORD HITS: {0}".format(hits) + self.keyboard.show_message(msg, color565(255, 0, 0)) + else: + # Password not found + msg = "PASSWORD NOT FOUND" + self.keyboard.show_message(msg, color565(0, 255, 0)) + except Exception as e: + if hasattr(e, 'message'): + self.keyboard.show_message(e.message[:22], + color565(255, 255, 255)) + else: + self.keyboard.show_message(str(e)[:22], + color565(255, 255, 255)) + + self.keyboard.waiting = True + self.keyboard.locked = False + + +def main(): + """Start PwnLookup.""" + spi1 = SPI(1, baudrate=51200000, + sck=Pin(14), mosi=Pin(13), miso=Pin(12)) + spi2 = SPI(2, baudrate=1000000, + sck=Pin(18), mosi=Pin(23), miso=Pin(19)) + + PwnLookup(spi1, spi2) + + while True: + sleep(.1) + + +main() diff --git a/ili9341/touch_keyboard.py b/ili9341/touch_keyboard.py new file mode 100644 index 0000000..dcb8fcb --- /dev/null +++ b/ili9341/touch_keyboard.py @@ -0,0 +1,130 @@ +"""Touch keyboard.""" + + +class TouchKeyboard(object): + """Touchscreen keyboard for ILI9341.""" + + YELLOW = const(65504) + GREEN = const(2016) + + KEYS = ( + ( + ('q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'), + ('a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'), + ('\t', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '\b', '\b'), + ('\n', ' ', '\r') + ), + ( + ('Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'), + ('A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'), + ('\t', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '\b', '\b'), + ('\n', ' ', '\r') + ), + ( + ('1', '2', '3', '4', '5', '6', '7', '8', '9', '0'), + ('@', '#', '$', '%', '^', '&', '*', '(', ')'), + ('\f', '+', ',', '.', '-', '_', '!', '?', '\b', '\b'), + ('\a', ' ', '\r') + ), + ( + ('1', '2', '3', '4', '5', '6', '7', '8', '9', '0'), + ('<', '>', '|', '\\', '/', '{', '}', '[', ']'), + ('\f', '=', '"', '\'', ';', ':', '`', '~', '\b', '\b'), + ('\a', ' ', '\r') + ) + ) + + def __init__(self, display, font): + """Initialize Keybaord. + + Args: + display (Display class): LCD Display + font (XglcdFont class): Font to display text above keyboard + """ + self.display = display + self.font = font + self.kb_screen = 0 + self.kb_text = '' + self.load_keyboard() + self.waiting = False + self.locked = False + + def clear_text(self): + """Clear the keyboard text.""" + self.display.fill_hrect(0, 11, self.display.width, 24, 0) + self.kb_text = '' + + def handle_keypress(self, x, y, debug=False): + """Get pressed key. + + Args: + x, y (int): Pressed screen coordinates. + Returns: + bool: True indicates return pressed otherwise False + """ + if self.locked is True: + return + + if self.waiting is True: + self.clear_text() + self.waiting = False + return + + x, y = y, x # Touch coordinates need to be swapped. + + if debug: + self.display.fill_circle(x, y, 5, self.GREEN) + + # Calculate keyboard row and column + if y >= 47: # Check if press within keyboard area + row = int(y / 47) - 1 + if row == 0: + column = int(x/32) + elif row == 1 or row == 2: + column = max(0, int((x-16)/32)) + else: + # Row 3 + if x < 80: + column = 0 + elif x > 240: + column = 2 + else: + column = 1 + + key = self.KEYS[self.kb_screen][row][column] + + if key == '\t' or key == '\f': + self.kb_screen ^= 1 # Toggle caps or flip symbol sets + self.load_keyboard() + elif key == '\a': + self.kb_screen = 0 # Switch to alphabet screen + self.load_keyboard() + elif key == '\n': + self.kb_screen = 2 # Switch to numeric / symbols screen + self.load_keyboard() + elif key == '\b': # Backspace + self.kb_text = self.kb_text[:-1] + margin = self.font.measure_text(self.kb_text) + self.display.fill_vrect(margin, 11, 12, 24, 0) + elif key == '\r': + # Keyboard return pressed (start search) + if self.kb_text != '': + return True + else: + margin = self.font.measure_text(self.kb_text) + self.kb_text += key + self.display.draw_letter(margin, 11, key, self.font, + self.YELLOW) + return False + + def load_keyboard(self): + """Display the currently selected keyboard.""" + self.display.draw_image('images/kb{0}.raw'.format(self.kb_screen), + 0, 47, 320, 192) + + def show_message(self, msg, color): + """Display message above keyboard.""" + self.clear_text() + msg_length = self.font.measure_text(msg) + margin = (self.display.width - msg_length) // 2 + self.display.draw_text(margin, 11, msg, self.font, color) diff --git a/ili9341/urequests2.py b/ili9341/urequests2.py new file mode 100644 index 0000000..ae82158 --- /dev/null +++ b/ili9341/urequests2.py @@ -0,0 +1,189 @@ +"""Revised MicroPython Urequests Library. + +by Chris Borrill (Chris2B) +https://github.com/chrisb2/micropython-lib/tree/master/urequests +forked from https://github.com/micropython/micropython-lib +MIT License + +Notes: + This library supports response.iter_lines() which helps eliminate + memory allocation errors when parsing REST API data. +""" + +import usocket + +ITER_CHUNK_SIZE = 128 + +class Response: + + def __init__(self, f): + self.raw = f + self.encoding = "utf-8" + self._content_consumed = False + self._cached = None + + def __enter__(self): + return self + + def __exit__(self, *args): + self.close() + + def __iter__(self): + return self.iter_content() + + def close(self): + if self.raw: + self.raw.close() + self.raw = None + self._cached = None + + @property + def content(self): + if self._cached is None: + try: + self._cached = self.raw.read() + finally: + self.raw.close() + self.raw = None + return self._cached + + @property + def text(self): + return str(self.content, self.encoding) + + def json(self): + import ujson + return ujson.loads(self.content) + + def iter_content(self, chunk_size=ITER_CHUNK_SIZE): + def generate(): + while True: + chunk = self.raw.read(chunk_size) + if not chunk: + break + yield chunk + self._content_consumed = True + + if self._content_consumed: + raise RuntimeError("response already consumed") + elif chunk_size is not None and not isinstance(chunk_size, int): + raise TypeError("chunk_size must be an int, it is instead a %s." + % type(chunk_size)) + + return generate() + + def iter_lines(self, chunk_size=ITER_CHUNK_SIZE, delimiter=None): + pending = None + + for chunk in self.iter_content(chunk_size=chunk_size): + + if pending is not None: + chunk = pending + chunk + + if delimiter: + lines = chunk.split(delimiter) + else: + lines = chunk.split(b'\n') + + if lines and lines[-1] and chunk and lines[-1][-1] == chunk[-1]: + pending = lines.pop() + else: + pending = None + + for line in lines: + yield line + + if pending is not None: + yield pending + + +def request(method, url, data=None, json=None, headers={}, stream=None): + try: + proto, dummy, host, path = url.split("/", 3) + except ValueError: + proto, dummy, host = url.split("/", 2) + path = "" + if proto == "http:": + port = 80 + elif proto == "https:": + import ussl + port = 443 + else: + raise ValueError("Unsupported protocol: " + proto) + + if ":" in host: + host, port = host.split(":", 1) + port = int(port) + + ai = usocket.getaddrinfo(host, port, 0, usocket.SOCK_STREAM) + ai = ai[0] + + s = usocket.socket(ai[0], ai[1], ai[2]) + try: + s.connect(ai[-1]) + if proto == "https:": + s = ussl.wrap_socket(s, server_hostname=host) + s.write(b"%s /%s HTTP/1.0\r\n" % (method, path)) + if not "Host" in headers: + s.write(b"Host: %s\r\n" % host) + # Iterate over keys to avoid tuple alloc + for k in headers: + s.write(k) + s.write(b": ") + s.write(headers[k]) + s.write(b"\r\n") + if json is not None: + assert data is None + import ujson + data = ujson.dumps(json) + s.write(b"Content-Type: application/json\r\n") + if data: + s.write(b"Content-Length: %d\r\n" % len(data)) + s.write(b"\r\n") + if data: + s.write(data) + + l = s.readline() + #print(l) + l = l.split(None, 2) + status = int(l[1]) + reason = "" + if len(l) > 2: + reason = l[2].rstrip() + while True: + l = s.readline() + if not l or l == b"\r\n": + break + #print(l) + if l.startswith(b"Transfer-Encoding:"): + if b"chunked" in l: + raise ValueError("Unsupported " + l) + elif l.startswith(b"Location:") and not 200 <= status <= 299: + raise NotImplementedError("Redirects not yet supported") + except OSError: + s.close() + raise + + resp = Response(s) + resp.status_code = status + resp.reason = reason + return resp + + +def head(url, **kw): + return request("HEAD", url, **kw) + +def get(url, **kw): + return request("GET", url, **kw) + +def post(url, **kw): + return request("POST", url, **kw) + +def put(url, **kw): + return request("PUT", url, **kw) + +def patch(url, **kw): + return request("PATCH", url, **kw) + +def delete(url, **kw): + return request("DELETE", url, **kw) diff --git a/ili9341/utils/fontedit2glcd.py b/ili9341/utils/fontedit2glcd.py new file mode 100644 index 0000000..6235392 --- /dev/null +++ b/ili9341/utils/fontedit2glcd.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +"""Utility to convert FontEdit files to GLCD format.""" +from os import path +import sys + + +def process_file(font_width, font_height, input_file, output_file): + with open(input_file, 'r') as infile, open(output_file, 'w') as outfile: + for line in infile: + line = line.strip() + + # Case 1: Comment Line + if line.startswith('//'): + outfile.write(line + '\n') + + # Case 2: Blank Line + elif not line: + continue + + # Case 3: Variable Definition + elif line.startswith('const'): + continue + + # Case 4: Variable Closing + elif line.startswith('};'): + continue + + # Case 5: Hex Value Lines + else: + parts = line.split('//') + hex_values = parts[0].split(',') + comment = '//' + parts[1] if len(parts) > 1 else '' + + converted_values = convert_hex_value( + [val.strip() for val in hex_values if val.strip()], + font_width, + font_height) + + outfile.write(', '.join(converted_values) + ', ' + + comment + '\n') + + +def hex_to_matrix(hex_values, font_width, font_height): + # Strip '0x' prefix and filter out invalid hex values + hex_values = [hv[2:] for hv in hex_values if hv.startswith('0x') and + all(c in '0123456789ABCDEFabcdef' for c in hv[2:])] + + # Calculate the number of hex values per row + values_per_row = font_width // 8 + (1 if font_width % 8 != 0 else 0) + + # Group hex values into rows based on values_per_row + rows = [hex_values[i:i + values_per_row] for i in range( + 0, len(hex_values), values_per_row)] + + # Verify the number of rows matches the expected font_height + if len(rows) != font_height: + raise ValueError(f"Expected {font_height} rows, but found {len(rows)}") + + # Convert grouped hex values to binary rows + binary_matrix = [] + for row in rows: + binary_row = '' + for hv in row: + # Reverse the order of bits in each byte + binary_byte = format(int(hv, 16), '08b')[::-1] + binary_row += binary_byte + binary_matrix.append(binary_row[:font_width]) + return binary_matrix + + +def pad_matrix(matrix, font_width, font_height): + # Calculate the required height to make it divisible by 8 + required_height = ((font_height + 7) // 8) * 8 + + # Pad the matrix with rows of zeros if needed + while len(matrix) < required_height: + binary_row = '0' * font_width + matrix.append(list(binary_row)) # Append a list of zeros + return matrix + + +def convert_hex_value(hex_values, font_width, font_height): + # Convert hex values to a binary matrix + matrix = hex_to_matrix(hex_values, font_width, font_height) + """ + for row in matrix: + print(' '.join(row)) + print("---------------") + """ + # Pad matrix along bottom to be divisible by 8 + matrix = pad_matrix(matrix, font_width, font_height) + """ + for row in matrix: + print(' '.join(row)) + """ + return matrix_transposed_to_hex_values(matrix, font_width, font_height) + + +def matrix_transposed_to_hex_values(matrix, font_width, font_height): + hex_values = [] + # Convert and prepend the width of the character + width_hex = '0x' + format(font_width, '02X') + hex_values.append(width_hex) + for col in range(font_width): + for row in range(0, font_height, 8): + # Extract a group of 8 pixels + pixel_group = [matrix[r][col] for r in range(row, row + 8)] + # Convert to binary string in little endian format + binary_str = ''.join(pixel_group[::-1]) + # Convert binary string to hex value + hex_value = '0x' + format(int(binary_str, 2), '02X') + hex_values.append(hex_value) + return hex_values + + +if __name__ == '__main__': + args = sys.argv + if len(args) != 4: + error('Please specify font width, height & input file: ./fontedit2glcd.py 24 42 myfont.c') + width = int(args[1]) + height = int(args[2]) + in_path = args[3] + + if not (1 <= width <= 254): + error("Width is not between 1 and 254.") + + if not (1 <= height <= 254): + error("Height is not between 1 and 254.") + + if not path.exists(in_path): + error('File Not Found: ' + in_path) + + filename, ext = path.splitext(in_path) + out_path = filename + "_converted" + ext + + process_file(width, height, in_path, out_path) diff --git a/ili9341/utils/img2rgb565.py b/ili9341/utils/img2rgb565.py new file mode 100644 index 0000000..eedf0e2 --- /dev/null +++ b/ili9341/utils/img2rgb565.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +"""Utility to convert images to raw RGB565 format.""" + +from PIL import Image +from struct import pack +from os import path +import sys + + +def error(msg): + """Display error and exit.""" + print (msg) + sys.exit(-1) + + +def write_bin(f, pixel_list): + """Save image in RGB565 format.""" + for pix in pixel_list: + r = (pix[0] >> 3) & 0x1F + g = (pix[1] >> 2) & 0x3F + b = (pix[2] >> 3) & 0x1F + f.write(pack('>H', (r << 11) + (g << 5) + b)) + + +if __name__ == '__main__': + args = sys.argv + if len(args) != 2: + error('Please specify input file: ./img2rgb565.py test.png') + in_path = args[1] + if not path.exists(in_path): + error('File Not Found: ' + in_path) + + filename, ext = path.splitext(in_path) + out_path = filename + '.raw' + img = Image.open(in_path).convert('RGB') + pixels = list(img.getdata()) + with open(out_path, 'wb') as f: + write_bin(f, pixels) + print('Saved: ' + out_path) diff --git a/ili9341/xglcd_font.py b/ili9341/xglcd_font.py new file mode 100644 index 0000000..5d28853 --- /dev/null +++ b/ili9341/xglcd_font.py @@ -0,0 +1,170 @@ +"""XGLCD Font Utility.""" +from math import ceil, floor + + +class XglcdFont(object): + """Font data in X-GLCD format. + + Attributes: + letters: A bytearray of letters (columns consist of bytes) + width: Maximum pixel width of font + height: Pixel height of font + start_letter: ASCII number of first letter + height_bytes: How many bytes comprises letter height + + Note: + Font files can be generated with the free version of MikroElektronika + GLCD Font Creator: www.mikroe.com/glcd-font-creator + The font file must be in X-GLCD 'C' format. + To save text files from this font creator program in Win7 or higher + you must use XP compatibility mode or you can just use the clipboard. + """ + + # Dict to tranlate bitwise values to byte position + BIT_POS = {1: 0, 2: 2, 4: 4, 8: 6, 16: 8, 32: 10, 64: 12, 128: 14, 256: 16} + + def __init__(self, path, width, height, start_letter=32, letter_count=96): + """Constructor for X-GLCD Font object. + + Args: + path (string): Full path of font file + width (int): Maximum width in pixels of each letter + height (int): Height in pixels of each letter + start_letter (int): First ACII letter. Default is 32. + letter_count (int): Total number of letters. Default is 96. + """ + self.width = width + self.height = max(height, 8) + self.start_letter = start_letter + self.letter_count = letter_count + self.bytes_per_letter = (floor( + (self.height - 1) / 8) + 1) * self.width + 1 + self.__load_xglcd_font(path) + + def __load_xglcd_font(self, path): + """Load X-GLCD font data from text file. + + Args: + path (string): Full path of font file. + """ + bytes_per_letter = self.bytes_per_letter + # Buffer to hold letter byte values + self.letters = bytearray(bytes_per_letter * self.letter_count) + mv = memoryview(self.letters) + offset = 0 + with open(path, 'r') as f: + for line in f: + # Skip lines that do not start with hex values + line = line.strip() + if len(line) == 0 or line[0:2] != '0x': + continue + # Remove comments + comment = line.find('//') + if comment != -1: + line = line[0:comment].strip() + # Remove trailing commas + if line.endswith(','): + line = line[0:len(line) - 1] + # Convert hex strings to bytearray and insert in to letters + mv[offset: offset + bytes_per_letter] = bytearray( + int(b, 16) for b in line.split(',')) + offset += bytes_per_letter + + def lit_bits(self, n): + """Return positions of 1 bits only.""" + while n: + b = n & (~n+1) + yield self.BIT_POS[b] + n ^= b + + def get_letter(self, letter, color, background=0, landscape=False): + """Convert letter byte data to pixels. + + Args: + letter (string): Letter to return (must exist within font). + color (int): RGB565 color value. + background (int): RGB565 background color (default: black). + landscape (bool): Orientation (default: False = portrait) + Returns: + (bytearray): Pixel data. + (int, int): Letter width and height. + """ + # Get index of letter + letter_ord = ord(letter) - self.start_letter + # Confirm font contains letter + if letter_ord >= self.letter_count: + print('Font does not contain character: ' + letter) + return b'', 0, 0 + bytes_per_letter = self.bytes_per_letter + offset = letter_ord * bytes_per_letter + mv = memoryview(self.letters[offset:offset + bytes_per_letter]) + + # Get width of letter (specified by first byte) + letter_width = mv[0] + letter_height = self.height + # Get size in bytes of specified letter + letter_size = letter_height * letter_width + # Create buffer (double size to accommodate 16 bit colors) + if background: + buf = bytearray(background.to_bytes(2, 'big') * letter_size) + else: + buf = bytearray(letter_size * 2) + + msb, lsb = color.to_bytes(2, 'big') + + if landscape: + # Populate buffer in order for landscape + pos = (letter_size * 2) - (letter_height * 2) + lh = letter_height + # Loop through letter byte data and convert to pixel data + for b in mv[1:]: + # Process only colored bits + for bit in self.lit_bits(b): + buf[bit + pos] = msb + buf[bit + pos + 1] = lsb + if lh > 8: + # Increment position by double byte + pos += 16 + lh -= 8 + else: + # Descrease position to start of previous column + pos -= (letter_height * 4) - (lh * 2) + lh = letter_height + else: + # Populate buffer in order for portrait + col = 0 # Set column to first column + bytes_per_letter = ceil(letter_height / 8) + letter_byte = 0 + # Loop through letter byte data and convert to pixel data + for b in mv[1:]: + # Process only colored bits + segment_size = letter_byte * letter_width * 16 + for bit in self.lit_bits(b): + pos = (bit * letter_width) + (col * 2) + segment_size + buf[pos] = msb + pos = (bit * letter_width) + (col * 2) + 1 + segment_size + buf[pos] = lsb + letter_byte += 1 + if letter_byte + 1 > bytes_per_letter: + col += 1 + letter_byte = 0 + + return buf, letter_width, letter_height + + def measure_text(self, text, spacing=1): + """Measure length of text string in pixels. + + Args: + text (string): Text string to measure + spacing (optional int): Pixel spacing between letters. Default: 1. + Returns: + int: length of text + """ + length = 0 + for letter in text: + # Get index of letter + letter_ord = ord(letter) - self.start_letter + offset = letter_ord * self.bytes_per_letter + # Add length of letter and spacing + length += self.letters[offset] + spacing + return length diff --git a/ili9341/xpt2046.py b/ili9341/xpt2046.py new file mode 100644 index 0000000..b1e8751 --- /dev/null +++ b/ili9341/xpt2046.py @@ -0,0 +1,135 @@ +"""XPT2046 Touch module.""" +from time import sleep + + +class Touch(object): + """Serial interface for XPT2046 Touch Screen Controller.""" + + # Command constants from ILI9341 datasheet + GET_X = const(0b11010000) # X position + GET_Y = const(0b10010000) # Y position + GET_Z1 = const(0b10110000) # Z1 position + GET_Z2 = const(0b11000000) # Z2 position + GET_TEMP0 = const(0b10000000) # Temperature 0 + GET_TEMP1 = const(0b11110000) # Temperature 1 + GET_BATTERY = const(0b10100000) # Battery monitor + GET_AUX = const(0b11100000) # Auxiliary input to ADC + + def __init__(self, spi, cs, int_pin=None, int_handler=None, + width=240, height=320, + x_min=100, x_max=1962, y_min=100, y_max=1900): + """Initialize touch screen controller. + + Args: + spi (Class Spi): SPI interface for OLED + cs (Class Pin): Chip select pin + int_pin (Class Pin): Touch controller interrupt pin + int_handler (function): Handler for screen interrupt + width (int): Width of LCD screen + height (int): Height of LCD screen + x_min (int): Minimum x coordinate + x_max (int): Maximum x coordinate + y_min (int): Minimum Y coordinate + y_max (int): Maximum Y coordinate + """ + self.spi = spi + self.cs = cs + self.cs.init(self.cs.OUT, value=1) + self.rx_buf = bytearray(3) # Receive buffer + self.tx_buf = bytearray(3) # Transmit buffer + self.width = width + self.height = height + # Set calibration + self.x_min = x_min + self.x_max = x_max + self.y_min = y_min + self.y_max = y_max + self.x_multiplier = width / (x_max - x_min) + self.x_add = x_min * -self.x_multiplier + self.y_multiplier = height / (y_max - y_min) + self.y_add = y_min * -self.y_multiplier + + if int_pin is not None: + self.int_pin = int_pin + self.int_pin.init(int_pin.IN) + self.int_handler = int_handler + self.int_locked = False + int_pin.irq(trigger=int_pin.IRQ_FALLING | int_pin.IRQ_RISING, + handler=self.int_press) + + def get_touch(self): + """Take multiple samples to get accurate touch reading.""" + timeout = 2 # set timeout to 2 seconds + confidence = 5 + buff = [[0, 0] for x in range(confidence)] + buf_length = confidence # Require a confidence of 5 good samples + buffptr = 0 # Track current buffer position + nsamples = 0 # Count samples + while timeout > 0: + if nsamples == buf_length: + meanx = sum([c[0] for c in buff]) // buf_length + meany = sum([c[1] for c in buff]) // buf_length + dev = sum([(c[0] - meanx)**2 + + (c[1] - meany)**2 for c in buff]) / buf_length + if dev <= 50: # Deviation should be under margin of 50 + return self.normalize(meanx, meany) + # get a new value + sample = self.raw_touch() # get a touch + if sample is None: + nsamples = 0 # Invalidate buff + else: + buff[buffptr] = sample # put in buff + buffptr = (buffptr + 1) % buf_length # Incr, until rollover + nsamples = min(nsamples + 1, buf_length) # Incr. until max + + sleep(.05) + timeout -= .05 + return None + + def int_press(self, pin): + """Send X,Y values to passed interrupt handler.""" + if not pin.value() and not self.int_locked: + self.int_locked = True # Lock Interrupt + buff = self.raw_touch() + + if buff is not None: + x, y = self.normalize(*buff) + self.int_handler(x, y) + sleep(.1) # Debounce falling edge + elif pin.value() and self.int_locked: + sleep(.1) # Debounce rising edge + self.int_locked = False # Unlock interrupt + + def normalize(self, x, y): + """Normalize mean X,Y values to match LCD screen.""" + x = int(self.x_multiplier * x + self.x_add) + y = int(self.y_multiplier * y + self.y_add) + return x, y + + def raw_touch(self): + """Read raw X,Y touch values. + + Returns: + tuple(int, int): X, Y + """ + x = self.send_command(self.GET_X) + y = self.send_command(self.GET_Y) + if self.x_min <= x <= self.x_max and self.y_min <= y <= self.y_max: + return (x, y) + else: + return None + + def send_command(self, command): + """Write command to XT2046 (MicroPython). + + Args: + command (byte): XT2046 command code. + Returns: + int: 12 bit response + """ + self.tx_buf[0] = command + self.cs(0) + self.spi.write_readinto(self.tx_buf, self.rx_buf) + self.cs(1) + + return (self.rx_buf[1] << 4) | (self.rx_buf[2] >> 4) diff --git a/images/kururin1-2.raw b/images/kururin1-2.raw new file mode 100644 index 0000000..aaaaf5a Binary files /dev/null and b/images/kururin1-2.raw differ diff --git a/libs/ili9341.py b/libs/ili9341.py new file mode 100644 index 0000000..5fd9118 --- /dev/null +++ b/libs/ili9341.py @@ -0,0 +1,1056 @@ +"""ILI9341 LCD/Touch module.""" +from time import sleep +from math import cos, sin, pi, radians +from sys import implementation +from framebuf import FrameBuffer, RGB565 # type: ignore + + +def color565(r, g, b): + """Return RGB565 color value. + + Args: + r (int): Red value. + g (int): Green value. + b (int): Blue value. + """ + return (r & 0xf8) << 8 | (g & 0xfc) << 3 | b >> 3 + + +class Display(object): + """Serial interface for 16-bit color (5-6-5 RGB) IL9341 display. + + Note: All coordinates are zero based. + """ + + # Command constants from ILI9341 datasheet + NOP = const(0x00) # No-op + SWRESET = const(0x01) # Software reset + RDDID = const(0x04) # Read display ID info + RDDST = const(0x09) # Read display status + SLPIN = const(0x10) # Enter sleep mode + SLPOUT = const(0x11) # Exit sleep mode + PTLON = const(0x12) # Partial mode on + NORON = const(0x13) # Normal display mode on + RDMODE = const(0x0A) # Read display power mode + RDMADCTL = const(0x0B) # Read display MADCTL + RDPIXFMT = const(0x0C) # Read display pixel format + RDIMGFMT = const(0x0D) # Read display image format + RDSELFDIAG = const(0x0F) # Read display self-diagnostic + INVOFF = const(0x20) # Display inversion off + INVON = const(0x21) # Display inversion on + GAMMASET = const(0x26) # Gamma set + DISPLAY_OFF = const(0x28) # Display off + DISPLAY_ON = const(0x29) # Display on + SET_COLUMN = const(0x2A) # Column address set + SET_PAGE = const(0x2B) # Page address set + WRITE_RAM = const(0x2C) # Memory write + READ_RAM = const(0x2E) # Memory read + PTLAR = const(0x30) # Partial area + VSCRDEF = const(0x33) # Vertical scrolling definition + MADCTL = const(0x36) # Memory access control + VSCRSADD = const(0x37) # Vertical scrolling start address + PIXFMT = const(0x3A) # COLMOD: Pixel format set + WRITE_DISPLAY_BRIGHTNESS = const(0x51) # Brightness hardware dependent! + READ_DISPLAY_BRIGHTNESS = const(0x52) + WRITE_CTRL_DISPLAY = const(0x53) + READ_CTRL_DISPLAY = const(0x54) + WRITE_CABC = const(0x55) # Write Content Adaptive Brightness Control + READ_CABC = const(0x56) # Read Content Adaptive Brightness Control + WRITE_CABC_MINIMUM = const(0x5E) # Write CABC Minimum Brightness + READ_CABC_MINIMUM = const(0x5F) # Read CABC Minimum Brightness + FRMCTR1 = const(0xB1) # Frame rate control (In normal mode/full colors) + FRMCTR2 = const(0xB2) # Frame rate control (In idle mode/8 colors) + FRMCTR3 = const(0xB3) # Frame rate control (In partial mode/full colors) + INVCTR = const(0xB4) # Display inversion control + DFUNCTR = const(0xB6) # Display function control + PWCTR1 = const(0xC0) # Power control 1 + PWCTR2 = const(0xC1) # Power control 2 + PWCTRA = const(0xCB) # Power control A + PWCTRB = const(0xCF) # Power control B + VMCTR1 = const(0xC5) # VCOM control 1 + VMCTR2 = const(0xC7) # VCOM control 2 + RDID1 = const(0xDA) # Read ID 1 + RDID2 = const(0xDB) # Read ID 2 + RDID3 = const(0xDC) # Read ID 3 + RDID4 = const(0xDD) # Read ID 4 + GMCTRP1 = const(0xE0) # Positive gamma correction + GMCTRN1 = const(0xE1) # Negative gamma correction + DTCA = const(0xE8) # Driver timing control A + DTCB = const(0xEA) # Driver timing control B + POSC = const(0xED) # Power on sequence control + ENABLE3G = const(0xF2) # Enable 3 gamma control + PUMPRC = const(0xF7) # Pump ratio control + + ROTATE = { + 0: 0x88, + 90: 0xE8, + 180: 0x48, + 270: 0x28 + } + + def __init__(self, spi, cs, dc, rst, + width=240, height=320, rotation=0): + """Initialize OLED. + + Args: + spi (Class Spi): SPI interface for OLED + cs (Class Pin): Chip select pin + dc (Class Pin): Data/Command pin + rst (Class Pin): Reset pin + width (Optional int): Screen width (default 240) + height (Optional int): Screen height (default 320) + rotation (Optional int): Rotation must be 0 default, 90. 180 or 270 + """ + self.spi = spi + self.cs = cs + self.dc = dc + self.rst = rst + self.width = width + self.height = height + if rotation not in self.ROTATE.keys(): + raise RuntimeError('Rotation must be 0, 90, 180 or 270.') + else: + self.rotation = self.ROTATE[rotation] + + # Initialize GPIO pins and set implementation specific methods + if implementation.name == 'circuitpython': + self.cs.switch_to_output(value=True) + self.dc.switch_to_output(value=False) + self.rst.switch_to_output(value=True) + self.reset = self.reset_cpy + self.write_cmd = self.write_cmd_cpy + self.write_data = self.write_data_cpy + else: + self.cs.init(self.cs.OUT, value=1) + self.dc.init(self.dc.OUT, value=0) + self.rst.init(self.rst.OUT, value=1) + self.reset = self.reset_mpy + self.write_cmd = self.write_cmd_mpy + self.write_data = self.write_data_mpy + self.reset() + # Send initialization commands + self.write_cmd(self.SWRESET) # Software reset + sleep(.1) + self.write_cmd(self.PWCTRB, 0x00, 0xC1, 0x30) # Pwr ctrl B + self.write_cmd(self.POSC, 0x64, 0x03, 0x12, 0x81) # Pwr on seq. ctrl + self.write_cmd(self.DTCA, 0x85, 0x00, 0x78) # Driver timing ctrl A + self.write_cmd(self.PWCTRA, 0x39, 0x2C, 0x00, 0x34, 0x02) # Pwr ctrl A + self.write_cmd(self.PUMPRC, 0x20) # Pump ratio control + self.write_cmd(self.DTCB, 0x00, 0x00) # Driver timing ctrl B + self.write_cmd(self.PWCTR1, 0x23) # Pwr ctrl 1 + self.write_cmd(self.PWCTR2, 0x10) # Pwr ctrl 2 + self.write_cmd(self.VMCTR1, 0x3E, 0x28) # VCOM ctrl 1 + self.write_cmd(self.VMCTR2, 0x86) # VCOM ctrl 2 + self.write_cmd(self.MADCTL, self.rotation) # Memory access ctrl + self.write_cmd(self.VSCRSADD, 0x00) # Vertical scrolling start address + self.write_cmd(self.PIXFMT, 0x55) # COLMOD: Pixel format + self.write_cmd(self.FRMCTR1, 0x00, 0x18) # Frame rate ctrl + self.write_cmd(self.DFUNCTR, 0x08, 0x82, 0x27) + self.write_cmd(self.ENABLE3G, 0x00) # Enable 3 gamma ctrl + self.write_cmd(self.GAMMASET, 0x01) # Gamma curve selected + self.write_cmd(self.GMCTRP1, 0x0F, 0x31, 0x2B, 0x0C, 0x0E, 0x08, 0x4E, + 0xF1, 0x37, 0x07, 0x10, 0x03, 0x0E, 0x09, 0x00) + self.write_cmd(self.GMCTRN1, 0x00, 0x0E, 0x14, 0x03, 0x11, 0x07, 0x31, + 0xC1, 0x48, 0x08, 0x0F, 0x0C, 0x31, 0x36, 0x0F) + self.write_cmd(self.SLPOUT) # Exit sleep + sleep(.1) + self.write_cmd(self.DISPLAY_ON) # Display on + sleep(.1) + self.clear() + + def block(self, x0, y0, x1, y1, data): + """Write a block of data to display. + + Args: + x0 (int): Starting X position. + y0 (int): Starting Y position. + x1 (int): Ending X position. + y1 (int): Ending Y position. + data (bytes): Data buffer to write. + """ + self.write_cmd(self.SET_COLUMN, + x0 >> 8, x0 & 0xff, x1 >> 8, x1 & 0xff) + self.write_cmd(self.SET_PAGE, + y0 >> 8, y0 & 0xff, y1 >> 8, y1 & 0xff) + self.write_cmd(self.WRITE_RAM) + self.write_data(data) + + def cleanup(self): + """Clean up resources.""" + self.clear() + self.display_off() + self.spi.deinit() + print('display off') + + def clear(self, color=0, hlines=8): + """Clear display. + + Args: + color (Optional int): RGB565 color value (Default: 0 = Black). + hlines (Optional int): # of horizontal lines per chunk (Default: 8) + Note: + hlines was introduced to deal with memory allocation on some + boards. Smaller values allocate less memory but take longer + to execute. hlines must be a factor of the display height. + For example, for a 240 pixel height, valid values for hline + would be 1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 160. + Higher values may result in memory allocation errors. + """ + w = self.width + h = self.height + assert hlines > 0 and h % hlines == 0, ( + "hlines must be a non-zero factor of height.") + # Clear display + if color: + line = color.to_bytes(2, 'big') * (w * hlines) + else: + line = bytearray(w * 2 * hlines) + for y in range(0, h, hlines): + self.block(0, y, w - 1, y + hlines - 1, line) + + def display_off(self): + """Turn display off.""" + self.write_cmd(self.DISPLAY_OFF) + + def display_on(self): + """Turn display on.""" + self.write_cmd(self.DISPLAY_ON) + + def draw_circle(self, x0, y0, r, color): + """Draw a circle. + + Args: + x0 (int): X coordinate of center point. + y0 (int): Y coordinate of center point. + r (int): Radius. + color (int): RGB565 color value. + """ + f = 1 - r + dx = 1 + dy = -r - r + x = 0 + y = r + self.draw_pixel(x0, y0 + r, color) + self.draw_pixel(x0, y0 - r, color) + self.draw_pixel(x0 + r, y0, color) + self.draw_pixel(x0 - r, y0, color) + while x < y: + if f >= 0: + y -= 1 + dy += 2 + f += dy + x += 1 + dx += 2 + f += dx + self.draw_pixel(x0 + x, y0 + y, color) + self.draw_pixel(x0 - x, y0 + y, color) + self.draw_pixel(x0 + x, y0 - y, color) + self.draw_pixel(x0 - x, y0 - y, color) + self.draw_pixel(x0 + y, y0 + x, color) + self.draw_pixel(x0 - y, y0 + x, color) + self.draw_pixel(x0 + y, y0 - x, color) + self.draw_pixel(x0 - y, y0 - x, color) + + def draw_ellipse(self, x0, y0, a, b, color): + """Draw an ellipse. + + Args: + x0, y0 (int): Coordinates of center point. + a (int): Semi axis horizontal. + b (int): Semi axis vertical. + color (int): RGB565 color value. + Note: + The center point is the center of the x0,y0 pixel. + Since pixels are not divisible, the axes are integer rounded + up to complete on a full pixel. Therefore the major and + minor axes are increased by 1. + """ + a2 = a * a + b2 = b * b + twoa2 = a2 + a2 + twob2 = b2 + b2 + x = 0 + y = b + px = 0 + py = twoa2 * y + # Plot initial points + self.draw_pixel(x0 + x, y0 + y, color) + self.draw_pixel(x0 - x, y0 + y, color) + self.draw_pixel(x0 + x, y0 - y, color) + self.draw_pixel(x0 - x, y0 - y, color) + # Region 1 + p = round(b2 - (a2 * b) + (0.25 * a2)) + while px < py: + x += 1 + px += twob2 + if p < 0: + p += b2 + px + else: + y -= 1 + py -= twoa2 + p += b2 + px - py + self.draw_pixel(x0 + x, y0 + y, color) + self.draw_pixel(x0 - x, y0 + y, color) + self.draw_pixel(x0 + x, y0 - y, color) + self.draw_pixel(x0 - x, y0 - y, color) + # Region 2 + p = round(b2 * (x + 0.5) * (x + 0.5) + + a2 * (y - 1) * (y - 1) - a2 * b2) + while y > 0: + y -= 1 + py -= twoa2 + if p > 0: + p += a2 - py + else: + x += 1 + px += twob2 + p += a2 - py + px + self.draw_pixel(x0 + x, y0 + y, color) + self.draw_pixel(x0 - x, y0 + y, color) + self.draw_pixel(x0 + x, y0 - y, color) + self.draw_pixel(x0 - x, y0 - y, color) + + def draw_hline(self, x, y, w, color): + """Draw a horizontal line. + + Args: + x (int): Starting X position. + y (int): Starting Y position. + w (int): Width of line. + color (int): RGB565 color value. + """ + if self.is_off_grid(x, y, x + w - 1, y): + return + line = color.to_bytes(2, 'big') * w + self.block(x, y, x + w - 1, y, line) + + def draw_image(self, path, x=0, y=0, w=320, h=240): + """Draw image from flash. + + Args: + path (string): Image file path. + x (int): X coordinate of image left. Default is 0. + y (int): Y coordinate of image top. Default is 0. + w (int): Width of image. Default is 320. + h (int): Height of image. Default is 240. + """ + x2 = x + w - 1 + y2 = y + h - 1 + if self.is_off_grid(x, y, x2, y2): + return + with open(path, "rb") as f: + chunk_height = 1024 // w + chunk_count, remainder = divmod(h, chunk_height) + chunk_size = chunk_height * w * 2 + chunk_y = y + if chunk_count: + for c in range(0, chunk_count): + buf = f.read(chunk_size) + self.block(x, chunk_y, + x2, chunk_y + chunk_height - 1, + buf) + chunk_y += chunk_height + if remainder: + buf = f.read(remainder * w * 2) + self.block(x, chunk_y, + x2, chunk_y + remainder - 1, + buf) + + def draw_letter(self, x, y, letter, font, color, background=0, + landscape=False, rotate_180=False): + """Draw a letter. + + Args: + x (int): Starting X position. + y (int): Starting Y position. + letter (string): Letter to draw. + font (XglcdFont object): Font. + color (int): RGB565 color value. + background (int): RGB565 background color (default: black) + landscape (bool): Orientation (default: False = portrait) + rotate_180 (bool): Rotate text by 180 degrees + """ + buf, w, h = font.get_letter(letter, color, background, landscape) + if rotate_180: + # Manually rotate the buffer by 180 degrees + # ensure bytes pairs for each pixel retain color565 + new_buf = bytearray(len(buf)) + num_pixels = len(buf) // 2 + for i in range(num_pixels): + # The index for the new buffer's byte pair + new_idx = (num_pixels - 1 - i) * 2 + # The index for the original buffer's byte pair + old_idx = i * 2 + # Swap the pixels + new_buf[new_idx], new_buf[new_idx + 1] = buf[old_idx], buf[old_idx + 1] + buf = new_buf + + # Check for errors (Font could be missing specified letter) + if w == 0: + return w, h + + if landscape: + y -= w + if self.is_off_grid(x, y, x + h - 1, y + w - 1): + return 0, 0 + self.block(x, y, + x + h - 1, y + w - 1, + buf) + else: + if self.is_off_grid(x, y, x + w - 1, y + h - 1): + return 0, 0 + self.block(x, y, + x + w - 1, y + h - 1, + buf) + return w, h + + def draw_line(self, x1, y1, x2, y2, color): + """Draw a line using Bresenham's algorithm. + + Args: + x1, y1 (int): Starting coordinates of the line + x2, y2 (int): Ending coordinates of the line + color (int): RGB565 color value. + """ + # Check for horizontal line + if y1 == y2: + if x1 > x2: + x1, x2 = x2, x1 + self.draw_hline(x1, y1, x2 - x1 + 1, color) + return + # Check for vertical line + if x1 == x2: + if y1 > y2: + y1, y2 = y2, y1 + self.draw_vline(x1, y1, y2 - y1 + 1, color) + return + # Confirm coordinates in boundary + if self.is_off_grid(min(x1, x2), min(y1, y2), + max(x1, x2), max(y1, y2)): + return + # Changes in x, y + dx = x2 - x1 + dy = y2 - y1 + # Determine how steep the line is + is_steep = abs(dy) > abs(dx) + # Rotate line + if is_steep: + x1, y1 = y1, x1 + x2, y2 = y2, x2 + # Swap start and end points if necessary + if x1 > x2: + x1, x2 = x2, x1 + y1, y2 = y2, y1 + # Recalculate differentials + dx = x2 - x1 + dy = y2 - y1 + # Calculate error + error = dx >> 1 + ystep = 1 if y1 < y2 else -1 + y = y1 + for x in range(x1, x2 + 1): + # Had to reverse HW ???? + if not is_steep: + self.draw_pixel(x, y, color) + else: + self.draw_pixel(y, x, color) + error -= abs(dy) + if error < 0: + y += ystep + error += dx + + def draw_lines(self, coords, color): + """Draw multiple lines. + + Args: + coords ([[int, int],...]): Line coordinate X, Y pairs + color (int): RGB565 color value. + """ + # Starting point + x1, y1 = coords[0] + # Iterate through coordinates + for i in range(1, len(coords)): + x2, y2 = coords[i] + self.draw_line(x1, y1, x2, y2, color) + x1, y1 = x2, y2 + + def draw_pixel(self, x, y, color): + """Draw a single pixel. + + Args: + x (int): X position. + y (int): Y position. + color (int): RGB565 color value. + """ + if self.is_off_grid(x, y, x, y): + return + self.block(x, y, x, y, color.to_bytes(2, 'big')) + + def draw_polygon(self, sides, x0, y0, r, color, rotate=0): + """Draw an n-sided regular polygon. + + Args: + sides (int): Number of polygon sides. + x0, y0 (int): Coordinates of center point. + r (int): Radius. + color (int): RGB565 color value. + rotate (Optional float): Rotation in degrees relative to origin. + Note: + The center point is the center of the x0,y0 pixel. + Since pixels are not divisible, the radius is integer rounded + up to complete on a full pixel. Therefore diameter = 2 x r + 1. + """ + coords = [] + theta = radians(rotate) + n = sides + 1 + for s in range(n): + t = 2.0 * pi * s / sides + theta + coords.append([int(r * cos(t) + x0), int(r * sin(t) + y0)]) + + # Cast to python float first to fix rounding errors + self.draw_lines(coords, color=color) + + def draw_rectangle(self, x, y, w, h, color): + """Draw a rectangle. + + Args: + x (int): Starting X position. + y (int): Starting Y position. + w (int): Width of rectangle. + h (int): Height of rectangle. + color (int): RGB565 color value. + """ + x2 = x + w - 1 + y2 = y + h - 1 + self.draw_hline(x, y, w, color) + self.draw_hline(x, y2, w, color) + self.draw_vline(x, y, h, color) + self.draw_vline(x2, y, h, color) + + def draw_sprite(self, buf, x, y, w, h): + """Draw a sprite (optimized for horizontal drawing). + + Args: + buf (bytearray): Buffer to draw. + x (int): Starting X position. + y (int): Starting Y position. + w (int): Width of drawing. + h (int): Height of drawing. + """ + x2 = x + w - 1 + y2 = y + h - 1 + if self.is_off_grid(x, y, x2, y2): + return + self.block(x, y, x2, y2, buf) + + def draw_text(self, x, y, text, font, color, background=0, + landscape=False, rotate_180=False, spacing=1): + """Draw text. + + Args: + x (int): Starting X position + y (int): Starting Y position + text (string): Text to draw + font (XglcdFont object): Font + color (int): RGB565 color value + background (int): RGB565 background color (default: black) + landscape (bool): Orientation (default: False = portrait) + rotate_180 (bool): Rotate text by 180 degrees + spacing (int): Pixels between letters (default: 1) + """ + iterable_text = reversed(text) if rotate_180 else text + for letter in iterable_text: + # Get letter array and letter dimensions + w, h = self.draw_letter(x, y, letter, font, color, background, + landscape, rotate_180) + # Stop on error + if w == 0 or h == 0: + print('Invalid width {0} or height {1}'.format(w, h)) + return + + if landscape: + # Fill in spacing + if spacing: + self.fill_hrect(x, y - w - spacing, h, spacing, background) + # Position y for next letter + y -= (w + spacing) + else: + # Fill in spacing + if spacing: + self.fill_hrect(x + w, y, spacing, h, background) + # Position x for next letter + x += (w + spacing) + + # # Fill in spacing + # if spacing: + # self.fill_vrect(x + w, y, spacing, h, background) + # # Position x for next letter + # x += w + spacing + + def draw_text8x8(self, x, y, text, color, background=0, + rotate=0): + """Draw text using built-in MicroPython 8x8 bit font. + + Args: + x (int): Starting X position. + y (int): Starting Y position. + text (string): Text to draw. + color (int): RGB565 color value. + background (int): RGB565 background color (default: black). + rotate(int): 0, 90, 180, 270 + """ + w = len(text) * 8 + h = 8 + # Confirm coordinates in boundary + if self.is_off_grid(x, y, x + 7, y + 7): + return + # Rearrange color + r = (color & 0xF800) >> 8 + g = (color & 0x07E0) >> 3 + b = (color & 0x1F) << 3 + buf = bytearray(w * 16) + fbuf = FrameBuffer(buf, w, h, RGB565) + if background != 0: + bg_r = (background & 0xF800) >> 8 + bg_g = (background & 0x07E0) >> 3 + bg_b = (background & 0x1F) << 3 + fbuf.fill(color565(bg_b, bg_r, bg_g)) + fbuf.text(text, 0, 0, color565(b, r, g)) + if rotate == 0: + self.block(x, y, x + w - 1, y + (h - 1), buf) + elif rotate == 90: + buf2 = bytearray(w * 16) + fbuf2 = FrameBuffer(buf2, h, w, RGB565) + for y1 in range(h): + for x1 in range(w): + fbuf2.pixel(y1, x1, + fbuf.pixel(x1, (h - 1) - y1)) + self.block(x, y, x + (h - 1), y + w - 1, buf2) + elif rotate == 180: + buf2 = bytearray(w * 16) + fbuf2 = FrameBuffer(buf2, w, h, RGB565) + for y1 in range(h): + for x1 in range(w): + fbuf2.pixel(x1, y1, + fbuf.pixel((w - 1) - x1, (h - 1) - y1)) + self.block(x, y, x + w - 1, y + (h - 1), buf2) + elif rotate == 270: + buf2 = bytearray(w * 16) + fbuf2 = FrameBuffer(buf2, h, w, RGB565) + for y1 in range(h): + for x1 in range(w): + fbuf2.pixel(y1, x1, + fbuf.pixel((w - 1) - x1, y1)) + self.block(x, y, x + (h - 1), y + w - 1, buf2) + + def draw_vline(self, x, y, h, color): + """Draw a vertical line. + + Args: + x (int): Starting X position. + y (int): Starting Y position. + h (int): Height of line. + color (int): RGB565 color value. + """ + # Confirm coordinates in boundary + if self.is_off_grid(x, y, x, y + h - 1): + return + line = color.to_bytes(2, 'big') * h + self.block(x, y, x, y + h - 1, line) + + def fill_circle(self, x0, y0, r, color): + """Draw a filled circle. + + Args: + x0 (int): X coordinate of center point. + y0 (int): Y coordinate of center point. + r (int): Radius. + color (int): RGB565 color value. + """ + f = 1 - r + dx = 1 + dy = -r - r + x = 0 + y = r + self.draw_vline(x0, y0 - r, 2 * r + 1, color) + while x < y: + if f >= 0: + y -= 1 + dy += 2 + f += dy + x += 1 + dx += 2 + f += dx + self.draw_vline(x0 + x, y0 - y, 2 * y + 1, color) + self.draw_vline(x0 - x, y0 - y, 2 * y + 1, color) + self.draw_vline(x0 - y, y0 - x, 2 * x + 1, color) + self.draw_vline(x0 + y, y0 - x, 2 * x + 1, color) + + def fill_ellipse(self, x0, y0, a, b, color): + """Draw a filled ellipse. + + Args: + x0, y0 (int): Coordinates of center point. + a (int): Semi axis horizontal. + b (int): Semi axis vertical. + color (int): RGB565 color value. + Note: + The center point is the center of the x0,y0 pixel. + Since pixels are not divisible, the axes are integer rounded + up to complete on a full pixel. Therefore the major and + minor axes are increased by 1. + """ + a2 = a * a + b2 = b * b + twoa2 = a2 + a2 + twob2 = b2 + b2 + x = 0 + y = b + px = 0 + py = twoa2 * y + # Plot initial points + self.draw_line(x0, y0 - y, x0, y0 + y, color) + # Region 1 + p = round(b2 - (a2 * b) + (0.25 * a2)) + while px < py: + x += 1 + px += twob2 + if p < 0: + p += b2 + px + else: + y -= 1 + py -= twoa2 + p += b2 + px - py + self.draw_line(x0 + x, y0 - y, x0 + x, y0 + y, color) + self.draw_line(x0 - x, y0 - y, x0 - x, y0 + y, color) + # Region 2 + p = round(b2 * (x + 0.5) * (x + 0.5) + + a2 * (y - 1) * (y - 1) - a2 * b2) + while y > 0: + y -= 1 + py -= twoa2 + if p > 0: + p += a2 - py + else: + x += 1 + px += twob2 + p += a2 - py + px + self.draw_line(x0 + x, y0 - y, x0 + x, y0 + y, color) + self.draw_line(x0 - x, y0 - y, x0 - x, y0 + y, color) + + def fill_hrect(self, x, y, w, h, color): + """Draw a filled rectangle (optimized for horizontal drawing). + + Args: + x (int): Starting X position. + y (int): Starting Y position. + w (int): Width of rectangle. + h (int): Height of rectangle. + color (int): RGB565 color value. + """ + if self.is_off_grid(x, y, x + w - 1, y + h - 1): + return + chunk_height = 1024 // w + chunk_count, remainder = divmod(h, chunk_height) + chunk_size = chunk_height * w + chunk_y = y + if chunk_count: + buf = color.to_bytes(2, 'big') * chunk_size + for c in range(0, chunk_count): + self.block(x, chunk_y, + x + w - 1, chunk_y + chunk_height - 1, + buf) + chunk_y += chunk_height + + if remainder: + buf = color.to_bytes(2, 'big') * remainder * w + self.block(x, chunk_y, + x + w - 1, chunk_y + remainder - 1, + buf) + + def fill_rectangle(self, x, y, w, h, color): + """Draw a filled rectangle. + + Args: + x (int): Starting X position. + y (int): Starting Y position. + w (int): Width of rectangle. + h (int): Height of rectangle. + color (int): RGB565 color value. + """ + if self.is_off_grid(x, y, x + w - 1, y + h - 1): + return + if w > h: + self.fill_hrect(x, y, w, h, color) + else: + self.fill_vrect(x, y, w, h, color) + + def fill_polygon(self, sides, x0, y0, r, color, rotate=0): + """Draw a filled n-sided regular polygon. + + Args: + sides (int): Number of polygon sides. + x0, y0 (int): Coordinates of center point. + r (int): Radius. + color (int): RGB565 color value. + rotate (Optional float): Rotation in degrees relative to origin. + Note: + The center point is the center of the x0,y0 pixel. + Since pixels are not divisible, the radius is integer rounded + up to complete on a full pixel. Therefore diameter = 2 x r + 1. + """ + # Determine side coordinates + coords = [] + theta = radians(rotate) + n = sides + 1 + for s in range(n): + t = 2.0 * pi * s / sides + theta + coords.append([int(r * cos(t) + x0), int(r * sin(t) + y0)]) + # Starting point + x1, y1 = coords[0] + # Minimum Maximum X dict + xdict = {y1: [x1, x1]} + # Iterate through coordinates + for row in coords[1:]: + x2, y2 = row + xprev, yprev = x2, y2 + # Calculate perimeter + # Check for horizontal side + if y1 == y2: + if x1 > x2: + x1, x2 = x2, x1 + if y1 in xdict: + xdict[y1] = [min(x1, xdict[y1][0]), max(x2, xdict[y1][1])] + else: + xdict[y1] = [x1, x2] + x1, y1 = xprev, yprev + continue + # Non horizontal side + # Changes in x, y + dx = x2 - x1 + dy = y2 - y1 + # Determine how steep the line is + is_steep = abs(dy) > abs(dx) + # Rotate line + if is_steep: + x1, y1 = y1, x1 + x2, y2 = y2, x2 + # Swap start and end points if necessary + if x1 > x2: + x1, x2 = x2, x1 + y1, y2 = y2, y1 + # Recalculate differentials + dx = x2 - x1 + dy = y2 - y1 + # Calculate error + error = dx >> 1 + ystep = 1 if y1 < y2 else -1 + y = y1 + # Calcualte minimum and maximum x values + for x in range(x1, x2 + 1): + if is_steep: + if x in xdict: + xdict[x] = [min(y, xdict[x][0]), max(y, xdict[x][1])] + else: + xdict[x] = [y, y] + else: + if y in xdict: + xdict[y] = [min(x, xdict[y][0]), max(x, xdict[y][1])] + else: + xdict[y] = [x, x] + error -= abs(dy) + if error < 0: + y += ystep + error += dx + x1, y1 = xprev, yprev + # Fill polygon + for y, x in xdict.items(): + self.draw_hline(x[0], y, x[1] - x[0] + 2, color) + + def fill_vrect(self, x, y, w, h, color): + """Draw a filled rectangle (optimized for vertical drawing). + + Args: + x (int): Starting X position. + y (int): Starting Y position. + w (int): Width of rectangle. + h (int): Height of rectangle. + color (int): RGB565 color value. + """ + if self.is_off_grid(x, y, x + w - 1, y + h - 1): + return + chunk_width = 1024 // h + chunk_count, remainder = divmod(w, chunk_width) + chunk_size = chunk_width * h + chunk_x = x + if chunk_count: + buf = color.to_bytes(2, 'big') * chunk_size + for c in range(0, chunk_count): + self.block(chunk_x, y, + chunk_x + chunk_width - 1, y + h - 1, + buf) + chunk_x += chunk_width + + if remainder: + buf = color.to_bytes(2, 'big') * remainder * h + self.block(chunk_x, y, + chunk_x + remainder - 1, y + h - 1, + buf) + + def is_off_grid(self, xmin, ymin, xmax, ymax): + """Check if coordinates extend past display boundaries. + + Args: + xmin (int): Minimum horizontal pixel. + ymin (int): Minimum vertical pixel. + xmax (int): Maximum horizontal pixel. + ymax (int): Maximum vertical pixel. + Returns: + boolean: False = Coordinates OK, True = Error. + """ + if xmin < 0: + print('x-coordinate: {0} below minimum of 0.'.format(xmin)) + return True + if ymin < 0: + print('y-coordinate: {0} below minimum of 0.'.format(ymin)) + return True + if xmax >= self.width: + print('x-coordinate: {0} above maximum of {1}.'.format( + xmax, self.width - 1)) + return True + if ymax >= self.height: + print('y-coordinate: {0} above maximum of {1}.'.format( + ymax, self.height - 1)) + return True + return False + + def load_sprite(self, path, w, h): + """Load sprite image. + + Args: + path (string): Image file path. + w (int): Width of image. + h (int): Height of image. + Notes: + w x h cannot exceed 2048 + """ + buf_size = w * h * 2 + with open(path, "rb") as f: + return f.read(buf_size) + + def reset_cpy(self): + """Perform reset: Low=initialization, High=normal operation. + + Notes: CircuitPython implemntation + """ + self.rst.value = False + sleep(.05) + self.rst.value = True + sleep(.05) + + def reset_mpy(self): + """Perform reset: Low=initialization, High=normal operation. + + Notes: MicroPython implemntation + """ + self.rst(0) + sleep(.05) + self.rst(1) + sleep(.05) + + def scroll(self, y): + """Scroll display vertically. + + Args: + y (int): Number of pixels to scroll display. + """ + self.write_cmd(self.VSCRSADD, y >> 8, y & 0xFF) + + def set_scroll(self, top, bottom): + """Set the height of the top and bottom scroll margins. + + Args: + top (int): Height of top scroll margin + bottom (int): Height of bottom scroll margin + """ + if top + bottom <= self.height: + middle = self.height - (top + bottom) + print(top, middle, bottom) + self.write_cmd(self.VSCRDEF, + top >> 8, + top & 0xFF, + middle >> 8, + middle & 0xFF, + bottom >> 8, + bottom & 0xFF) + + def sleep(self, enable=True): + """Enters or exits sleep mode. + + Args: + enable (bool): True (default)=Enter sleep mode, False=Exit sleep + """ + if enable: + self.write_cmd(self.SLPIN) + else: + self.write_cmd(self.SLPOUT) + + def write_cmd_mpy(self, command, *args): + """Write command to OLED (MicroPython). + + Args: + command (byte): ILI9341 command code. + *args (optional bytes): Data to transmit. + """ + self.dc(0) + self.cs(0) + self.spi.write(bytearray([command])) + self.cs(1) + # Handle any passed data + if len(args) > 0: + self.write_data(bytearray(args)) + + def write_cmd_cpy(self, command, *args): + """Write command to OLED (CircuitPython). + + Args: + command (byte): ILI9341 command code. + *args (optional bytes): Data to transmit. + """ + self.dc.value = False + self.cs.value = False + # Confirm SPI locked before writing + while not self.spi.try_lock(): + pass + self.spi.write(bytearray([command])) + self.spi.unlock() + self.cs.value = True + # Handle any passed data + if len(args) > 0: + self.write_data(bytearray(args)) + + def write_data_mpy(self, data): + """Write data to OLED (MicroPython). + + Args: + data (bytes): Data to transmit. + """ + self.dc(1) + self.cs(0) + self.spi.write(data) + self.cs(1) + + def write_data_cpy(self, data): + """Write data to OLED (CircuitPython). + + Args: + data (bytes): Data to transmit. + """ + self.dc.value = True + self.cs.value = False + # Confirm SPI locked before writing + while not self.spi.try_lock(): + pass + self.spi.write(data) + self.spi.unlock() + self.cs.value = True diff --git a/libs/neopixel.py b/libs/neopixel.py new file mode 100644 index 0000000..6bb00a4 --- /dev/null +++ b/libs/neopixel.py @@ -0,0 +1,351 @@ +import array, time +from machine import Pin +import rp2 + + +# PIO state machine for RGB. Pulls 24 bits (rgb -> 3 * 8bit) automatically +@rp2.asm_pio(sideset_init=rp2.PIO.OUT_LOW, out_shiftdir=rp2.PIO.SHIFT_LEFT, autopull=True, pull_thresh=24) +def ws2812(): + T1 = 2 + T2 = 5 + T3 = 3 + wrap_target() + label("bitloop") + out(x, 1) .side(0) [T3 - 1] + jmp(not_x, "do_zero") .side(1) [T1 - 1] + jmp("bitloop") .side(1) [T2 - 1] + label("do_zero") + nop() .side(0) [T2 - 1] + wrap() + + +# PIO state machine for RGBW. Pulls 32 bits (rgbw -> 4 * 8bit) automatically +@rp2.asm_pio(sideset_init=rp2.PIO.OUT_LOW, out_shiftdir=rp2.PIO.SHIFT_LEFT, autopull=True, pull_thresh=32) +def sk6812(): + T1 = 2 + T2 = 5 + T3 = 3 + wrap_target() + label("bitloop") + out(x, 1) .side(0) [T3 - 1] + jmp(not_x, "do_zero") .side(1) [T1 - 1] + jmp("bitloop") .side(1) [T2 - 1] + label("do_zero") + nop() .side(0) [T2 - 1] + wrap() + + +# we need this because Micropython can't construct slice objects directly, only by +# way of supporting slice notation. +# So, e.g. slice_maker[1::4] gives a slice(1,None,4) object. +class slice_maker_class: + def __getitem__(self, slc): + return slc + + +slice_maker = slice_maker_class() + + +# Delay here is the reset time. You need a pause to reset the LED strip back to the initial LED +# however, if you have quite a bit of processing to do before the next time you update the strip +# you could put in delay=0 (or a lower delay) +# +# Class supports different order of individual colors (GRB, RGB, WRGB, GWRB ...). In order to achieve +# this, we need to flip the indexes: in 'RGBW', 'R' is on index 0, but we need to shift it left by 3 * 8bits, +# so in it's inverse, 'WBGR', it has exactly right index. Since micropython doesn't have [::-1] and recursive rev() +# isn't too efficient we simply do that by XORing (operator ^) each index with 3 (0b11) to make this flip. +# When dealing with just 'RGB' (3 letter string), this means same but reduced by 1 after XOR!. +# Example: in 'GRBW' we want final form of 0bGGRRBBWW, meaning G with index 0 needs to be shifted 3 * 8bit -> +# 'G' on index 0: 0b00 ^ 0b11 -> 0b11 (3), just as we wanted. +# Same hold for every other index (and - 1 at the end for 3 letter strings). + +class Neopixel: + # Micropython doesn't implement __slots__, but it's good to have a place + # to describe the data members... + # __slots__ = [ + # 'num_leds', # number of LEDs + # 'pixels', # array.array('I') of raw data for LEDs + # 'mode', # mode 'RGB' etc + # 'W_in_mode', # bool: is 'W' in mode + # 'sm', # state machine + # 'shift', # shift amount for each component, in a tuple for (R,B,G,W) + # 'delay', # delay amount + # 'brightnessvalue', # brightness scale factor 1..255 + # ] + + def __init__(self, num_leds, state_machine, pin, mode="RGB", delay=0.0001): + """ + Constructor for library class + + :param num_leds: number of leds on your led-strip + :param state_machine: id of PIO state machine used + :param pin: pin on which data line to led-strip is connected + :param mode: [default: "RGB"] mode and order of bits representing the color value. + This can be any order of RGB or RGBW (neopixels are usually GRB) + :param delay: [default: 0.0001] delay used for latching of leds when sending data + """ + self.pixels = array.array("I", [0] * num_leds) + self.mode = mode + self.W_in_mode = 'W' in mode + if self.W_in_mode: + # RGBW uses different PIO state machine configuration + self.sm = rp2.StateMachine(state_machine, sk6812, freq=8000000, sideset_base=Pin(pin)) + # tuple of values required to shift bit into position (check class desc.) + self.shift = ((mode.index('R') ^ 3) * 8, (mode.index('G') ^ 3) * 8, + (mode.index('B') ^ 3) * 8, (mode.index('W') ^ 3) * 8) + else: + self.sm = rp2.StateMachine(state_machine, ws2812, freq=8000000, sideset_base=Pin(pin)) + self.shift = (((mode.index('R') ^ 3) - 1) * 8, ((mode.index('G') ^ 3) - 1) * 8, + ((mode.index('B') ^ 3) - 1) * 8, 0) + self.sm.active(1) + self.num_leds = num_leds + self.delay = delay + self.brightnessvalue = 255 + + def brightness(self, brightness=None): + """ + Set the overall value to adjust brightness when updating leds + or return class brightnessvalue if brightness is None + + :param brightness: [default: None] Value of brightness on interval 1..255 + :return: class brightnessvalue member or None + """ + if brightness is None: + return self.brightnessvalue + else: + if brightness < 1: + brightness = 1 + if brightness > 255: + brightness = 255 + self.brightnessvalue = brightness + + def set_pixel_line_gradient(self, pixel1, pixel2, left_rgb_w, right_rgb_w, how_bright=None): + """ + Create a gradient with two RGB colors between "pixel1" and "pixel2" (inclusive) + + :param pixel1: Index of starting pixel (inclusive) + :param pixel2: Index of ending pixel (inclusive) + :param left_rgb_w: Tuple of form (r, g, b) or (r, g, b, w) representing starting color + :param right_rgb_w: Tuple of form (r, g, b) or (r, g, b, w) representing ending color + :param how_bright: [default: None] Brightness of current interval. If None, use global brightness value + :return: None + """ + if pixel2 - pixel1 == 0: + return + right_pixel = max(pixel1, pixel2) + left_pixel = min(pixel1, pixel2) + + with_W = len(left_rgb_w) == 4 and self.W_in_mode + r_diff = right_rgb_w[0] - left_rgb_w[0] + g_diff = right_rgb_w[1] - left_rgb_w[1] + b_diff = right_rgb_w[2] - left_rgb_w[2] + if with_W: + w_diff = (right_rgb_w[3] - left_rgb_w[3]) + + for i in range(right_pixel - left_pixel + 1): + fraction = i / (right_pixel - left_pixel) + red = round(r_diff * fraction + left_rgb_w[0]) + green = round(g_diff * fraction + left_rgb_w[1]) + blue = round(b_diff * fraction + left_rgb_w[2]) + # if it's (r, g, b, w) + if with_W: + white = round(w_diff * fraction + left_rgb_w[3]) + self.set_pixel(left_pixel + i, (red, green, blue, white), how_bright) + else: + self.set_pixel(left_pixel + i, (red, green, blue), how_bright) + + def set_pixel_line(self, pixel1, pixel2, rgb_w, how_bright=None): + """ + Set an array of pixels starting from "pixel1" to "pixel2" (inclusive) to the desired color. + + :param pixel1: Index of starting pixel (inclusive) + :param pixel2: Index of ending pixel (inclusive) + :param rgb_w: Tuple of form (r, g, b) or (r, g, b, w) representing color to be used + :param how_bright: [default: None] Brightness of current interval. If None, use global brightness value + :return: None + """ + if pixel2 >= pixel1: + self.set_pixel(slice_maker[pixel1:pixel2 + 1], rgb_w, how_bright) + + def set_pixel(self, pixel_num, rgb_w, how_bright=None): + """ + Set red, green and blue (+ white) value of pixel on position + pixel_num may be a 'slice' object, and then the operation is applied + to all pixels implied by the slice (most useful when called via __setitem__) + + :param pixel_num: Index of pixel to be set or slice object representing multiple leds + :param rgb_w: Tuple of form (r, g, b) or (r, g, b, w) representing color to be used + :param how_bright: [default: None] Brightness of current interval. If None, use global brightness value + :return: None + """ + if how_bright is None: + how_bright = self.brightness() + sh_R, sh_G, sh_B, sh_W = self.shift + bratio = how_bright / 255.0 + + red = round(rgb_w[0] * bratio) + green = round(rgb_w[1] * bratio) + blue = round(rgb_w[2] * bratio) + white = 0 + # if it's (r, g, b, w) + if len(rgb_w) == 4 and self.W_in_mode: + white = round(rgb_w[3] * bratio) + + pix_value = white << sh_W | blue << sh_B | red << sh_R | green << sh_G + # set some subset, if pixel_num is a slice: + if type(pixel_num) is slice: + for i in range(*pixel_num.indices(self.num_leds)): + self.pixels[i] = pix_value + else: + self.pixels[pixel_num] = pix_value + + def get_pixel(self, pixel_num): + """ + Get red, green, blue and white (if applicable) values of pixel on position + + :param pixel_num: Index of pixel to be set + :return rgb_w: Tuple of form (r, g, b) or (r, g, b, w) representing color to be used + """ + balance = self.pixels[pixel_num] + sh_R, sh_G, sh_B, sh_W = self.shift + if self.W_in_mode: + w = (balance >> sh_W) & 255 + b = (balance >> sh_B) & 255 + r = (balance >> sh_R) & 255 + g = (balance >> sh_G) & 255 + red = int(r * 255 / self.brightness() ) + green = int(g * 255 / self.brightness() ) + blue = int(b * 255 / self.brightness() ) + if self.W_in_mode: + white = int(w * 255 / self.brightness() ) + return (red,green,blue,white) + else: + return (red,green,blue) + + def __setitem__(self, idx, rgb_w): + """ + if npix is a Neopixel object, + npix[10] = (0,255,0) # <- sets #10 to green + npix[15:21] = (255,0,0) # <- sets 16,17 .. 20 to red + npix[21:29:2] = (0,0,255) # <- sets 21,23,25,27 to blue + npix[1::2] = (0,0,0) # <- sets all odd pixels to 'off' + (the 'slice' cases pass idx as a 'slice' object, and + set_pixel processes the slice) + + :param idx: Index can either be indexing number or slice + :param rgb_w: Tuple of form (r, g, b) or (r, g, b, w) representing color to be used + :return: + """ + self.set_pixel(idx, rgb_w) + + def colorHSV(self, hue, sat, val): + """ + Converts HSV color to rgb tuple and returns it. + The logic is almost the same as in Adafruit NeoPixel library: + https://github.com/adafruit/Adafruit_NeoPixel so all the credits for that + go directly to them (license: https://github.com/adafruit/Adafruit_NeoPixel/blob/master/COPYING) + + :param hue: Hue component. Should be on interval 0..65535 + :param sat: Saturation component. Should be on interval 0..255 + :param val: Value component. Should be on interval 0..255 + :return: (r, g, b) tuple + """ + if hue >= 65536: + hue %= 65536 + + hue = (hue * 1530 + 32768) // 65536 + if hue < 510: + b = 0 + if hue < 255: + r = 255 + g = hue + else: + r = 510 - hue + g = 255 + elif hue < 1020: + r = 0 + if hue < 765: + g = 255 + b = hue - 510 + else: + g = 1020 - hue + b = 255 + elif hue < 1530: + g = 0 + if hue < 1275: + r = hue - 1020 + b = 255 + else: + r = 255 + b = 1530 - hue + else: + r = 255 + g = 0 + b = 0 + + v1 = 1 + val + s1 = 1 + sat + s2 = 255 - sat + + r = ((((r * s1) >> 8) + s2) * v1) >> 8 + g = ((((g * s1) >> 8) + s2) * v1) >> 8 + b = ((((b * s1) >> 8) + s2) * v1) >> 8 + + return r, g, b + + def rotate_left(self, num_of_pixels=None): + """ + Rotate pixels to the left + + :param num_of_pixels: Number of pixels to be shifted to the left. If None, it shifts for 1. + :return: None + """ + if num_of_pixels is None: + num_of_pixels = 1 + self.pixels = self.pixels[num_of_pixels:] + self.pixels[:num_of_pixels] + + def rotate_right(self, num_of_pixels=None): + """ + Rotate pixels to the right + + :param num_of_pixels: Number of pixels to be shifted to the right. If None, it shifts for 1. + :return: None + """ + if num_of_pixels is None: + num_of_pixels = 1 + num_of_pixels = -1 * num_of_pixels + self.pixels = self.pixels[num_of_pixels:] + self.pixels[:num_of_pixels] + + def show(self): + """ + Send data to led-strip, making all changes on leds have an effect. + This method should be used after every method that changes the state of leds or after a chain of changes. + :return: None + """ + # If mode is RGB, we cut 8 bits of, otherwise we keep all 32 + cut = 8 + if self.W_in_mode: + cut = 0 + sm_put = self.sm.put + for pixval in self.pixels: + sm_put(pixval, cut) + time.sleep(self.delay) + + def fill(self, rgb_w, how_bright=None): + """ + Fill the entire strip with color rgb_w + + :param rgb_w: Tuple of form (r, g, b) or (r, g, b, w) representing color to be used + :param how_bright: [default: None] Brightness of current interval. If None, use global brightness value + :return: None + """ + # set_pixel over all leds. + self.set_pixel(slice_maker[:], rgb_w, how_bright) + + def clear(self): + """ + Clear the entire strip, i.e. set every led color to 0. + + :return: None + """ + self.pixels = array.array("I", [0] * self.num_leds) \ No newline at end of file diff --git a/libs/sdcard.py b/libs/sdcard.py new file mode 100644 index 0000000..1030d6f --- /dev/null +++ b/libs/sdcard.py @@ -0,0 +1,306 @@ +""" +MicroPython driver for SD cards using SPI bus. + +Requires an SPI bus and a CS pin. Provides readblocks and writeblocks +methods so the device can be mounted as a filesystem. + +Example usage on pyboard: + + import pyb, sdcard, os + sd = sdcard.SDCard(pyb.SPI(1), pyb.Pin.board.X5) + pyb.mount(sd, '/sd2') + os.listdir('/') + +Example usage on ESP8266: + + import machine, sdcard, os + sd = sdcard.SDCard(machine.SPI(1), machine.Pin(15)) + os.mount(sd, '/sd') + os.listdir('/') + +""" + +from micropython import const +import time + + +_CMD_TIMEOUT = const(100) + +_R1_IDLE_STATE = const(1 << 0) +# R1_ERASE_RESET = const(1 << 1) +_R1_ILLEGAL_COMMAND = const(1 << 2) +# R1_COM_CRC_ERROR = const(1 << 3) +# R1_ERASE_SEQUENCE_ERROR = const(1 << 4) +# R1_ADDRESS_ERROR = const(1 << 5) +# R1_PARAMETER_ERROR = const(1 << 6) +_TOKEN_CMD25 = const(0xFC) +_TOKEN_STOP_TRAN = const(0xFD) +_TOKEN_DATA = const(0xFE) + + +class SDCard: + def __init__(self, spi, cs, baudrate=1320000): + self.spi = spi + self.cs = cs + + self.cmdbuf = bytearray(6) + self.dummybuf = bytearray(512) + self.tokenbuf = bytearray(1) + for i in range(512): + self.dummybuf[i] = 0xFF + self.dummybuf_memoryview = memoryview(self.dummybuf) # type: ignore + + # initialise the card + self.init_card(baudrate) + + def init_spi(self, baudrate): + try: + master = self.spi.MASTER + except AttributeError: + # on ESP8266 + self.spi.init(baudrate=baudrate, phase=0, polarity=0) + else: + # on pyboard + self.spi.init(master, baudrate=baudrate, phase=0, polarity=0) + + def init_card(self, baudrate): + # init CS pin + self.cs.init(self.cs.OUT, value=1) + + # init SPI bus; use low data rate for initialisation + self.init_spi(100000) + + # clock card at least 100 cycles with cs high + for i in range(16): + self.spi.write(b"\xff") + + # CMD0: init card; should return _R1_IDLE_STATE (allow 5 attempts) + for _ in range(5): + if self.cmd(0, 0, 0x95) == _R1_IDLE_STATE: + break + else: + raise OSError("no SD card") + + # CMD8: determine card version + r = self.cmd(8, 0x01AA, 0x87, 4) + if r == _R1_IDLE_STATE: + self.init_card_v2() + elif r == (_R1_IDLE_STATE | _R1_ILLEGAL_COMMAND): + self.init_card_v1() + else: + raise OSError("couldn't determine SD card version") + + # get the number of sectors + # CMD9: response R2 (R1 byte + 16-byte block read) + if self.cmd(9, 0, 0, 0, False) != 0: + raise OSError("no response from SD card") + csd = bytearray(16) + self.readinto(csd) + if csd[0] & 0xC0 == 0x40: # CSD version 2.0 + self.sectors = ((csd[8] << 8 | csd[9]) + 1) * 1024 + elif csd[0] & 0xC0 == 0x00: # CSD version 1.0 (old, <=2GB) + c_size = (csd[6] & 0b11) << 10 | csd[7] << 2 | csd[8] >> 6 + c_size_mult = (csd[9] & 0b11) << 1 | csd[10] >> 7 + read_bl_len = csd[5] & 0b1111 + capacity = (c_size + 1) * (2 ** (c_size_mult + 2)) * (2**read_bl_len) + self.sectors = capacity // 512 + else: + raise OSError("SD card CSD format not supported") + # print('sectors', self.sectors) + + # CMD16: set block length to 512 bytes + if self.cmd(16, 512, 0) != 0: + raise OSError("can't set 512 block size") + + # set to high data rate now that it's initialised + self.init_spi(baudrate) + + def init_card_v1(self): + for i in range(_CMD_TIMEOUT): + time.sleep_ms(50) + self.cmd(55, 0, 0) + if self.cmd(41, 0, 0) == 0: + # SDSC card, uses byte addressing in read/write/erase commands + self.cdv = 512 + # print("[SDCard] v1 card") + return + raise OSError("timeout waiting for v1 card") + + def init_card_v2(self): + for i in range(_CMD_TIMEOUT): + time.sleep_ms(50) + self.cmd(58, 0, 0, 4) + self.cmd(55, 0, 0) + if self.cmd(41, 0x40000000, 0) == 0: + self.cmd(58, 0, 0, -4) # 4-byte response, negative means keep the first byte + ocr = self.tokenbuf[0] # get first byte of response, which is OCR + if not ocr & 0x40: + # SDSC card, uses byte addressing in read/write/erase commands + self.cdv = 512 + else: + # SDHC/SDXC card, uses block addressing in read/write/erase commands + self.cdv = 1 + # print("[SDCard] v2 card") + return + raise OSError("timeout waiting for v2 card") + + def cmd(self, cmd, arg, crc, final=0, release=True, skip1=False): + self.cs(0) + + # create and send the command + buf = self.cmdbuf + buf[0] = 0x40 | cmd + buf[1] = arg >> 24 + buf[2] = arg >> 16 + buf[3] = arg >> 8 + buf[4] = arg + buf[5] = crc + self.spi.write(buf) + + if skip1: + self.spi.readinto(self.tokenbuf, 0xFF) + + # wait for the response (response[7] == 0) + for i in range(_CMD_TIMEOUT): + self.spi.readinto(self.tokenbuf, 0xFF) + response = self.tokenbuf[0] + if not (response & 0x80): + # this could be a big-endian integer that we are getting here + # if final<0 then store the first byte to tokenbuf and discard the rest + if final < 0: + self.spi.readinto(self.tokenbuf, 0xFF) + final = -1 - final + for j in range(final): + self.spi.write(b"\xff") + if release: + self.cs(1) + self.spi.write(b"\xff") + return response + + # timeout + self.cs(1) + self.spi.write(b"\xff") + return -1 + + def readinto(self, buf): + self.cs(0) + + # read until start byte (0xff) + for i in range(_CMD_TIMEOUT): + self.spi.readinto(self.tokenbuf, 0xFF) + if self.tokenbuf[0] == _TOKEN_DATA: + break + time.sleep_ms(1) + else: + self.cs(1) + raise OSError("timeout waiting for response") + + # read data + mv = self.dummybuf_memoryview + if len(buf) != len(mv): + mv = mv[: len(buf)] + self.spi.write_readinto(mv, buf) + + # read checksum + self.spi.write(b"\xff") + self.spi.write(b"\xff") + + self.cs(1) + self.spi.write(b"\xff") + + def write(self, token, buf): + self.cs(0) + + # send: start of block, data, checksum + self.spi.read(1, token) + self.spi.write(buf) + self.spi.write(b"\xff") + self.spi.write(b"\xff") + + # check the response + if (self.spi.read(1, 0xFF)[0] & 0x1F) != 0x05: + self.cs(1) + self.spi.write(b"\xff") + return + + # wait for write to finish + while self.spi.read(1, 0xFF)[0] == 0: + pass + + self.cs(1) + self.spi.write(b"\xff") + + def write_token(self, token): + self.cs(0) + self.spi.read(1, token) + self.spi.write(b"\xff") + # wait for write to finish + while self.spi.read(1, 0xFF)[0] == 0x00: + pass + + self.cs(1) + self.spi.write(b"\xff") + + def readblocks(self, block_num, buf): + # workaround for shared bus, required for (at least) some Kingston + # devices, ensure MOSI is high before starting transaction + self.spi.write(b"\xff") + + nblocks = len(buf) // 512 + assert nblocks and not len(buf) % 512, "Buffer length is invalid" + if nblocks == 1: + # CMD17: set read address for single block + if self.cmd(17, block_num * self.cdv, 0, release=False) != 0: + # release the card + self.cs(1) + raise OSError(5) # EIO + # receive the data and release card + self.readinto(buf) + else: + # CMD18: set read address for multiple blocks + if self.cmd(18, block_num * self.cdv, 0, release=False) != 0: + # release the card + self.cs(1) + raise OSError(5) # EIO + offset = 0 + mv = memoryview(buf) + while nblocks: + # receive the data and release card + self.readinto(mv[offset : offset + 512]) + offset += 512 + nblocks -= 1 + if self.cmd(12, 0, 0xFF, skip1=True): + raise OSError(5) # EIO + + def writeblocks(self, block_num, buf): + # workaround for shared bus, required for (at least) some Kingston + # devices, ensure MOSI is high before starting transaction + self.spi.write(b"\xff") + + nblocks, err = divmod(len(buf), 512) + assert nblocks and not err, "Buffer length is invalid" + if nblocks == 1: + # CMD24: set write address for single block + if self.cmd(24, block_num * self.cdv, 0) != 0: + raise OSError(5) # EIO + + # send the data + self.write(_TOKEN_DATA, buf) + else: + # CMD25: set write address for first block + if self.cmd(25, block_num * self.cdv, 0) != 0: + raise OSError(5) # EIO + # send the data + offset = 0 + mv = memoryview(buf) + while nblocks: + self.write(_TOKEN_CMD25, mv[offset : offset + 512]) + offset += 512 + nblocks -= 1 + self.write_token(_TOKEN_STOP_TRAN) + + def ioctl(self, op, arg): + if op == 4: # get number of blocks + return self.sectors + if op == 5: # get block size in bytes + return 512 diff --git a/main.py b/main.py new file mode 100644 index 0000000..c6a9bd6 --- /dev/null +++ b/main.py @@ -0,0 +1,90 @@ +from machine import Pin, Timer, SPI +from libs.neopixel import ( + Neopixel, +) # https://github.com/blaz-r/pi_pico_neopixel/wiki/Library-methods-documentation # type: ignore +from libs.ili9341 import Display +from uasyncio import sleep_ms +from utils import df + +# region SPI SCREEN + +TFT_CLK_PIN = const(18) +TFT_MOSI_PIN = const(19) +TFT_MISO_PIN = const(16) + +TFT_LED_PIN = const(28) +TFT_CS_PIN = const(20) +TFT_RST_PIN = const(21) +TFT_DC_PIN = const(22) + +TFT_BAUDRATE = const(2_099_999_999) + +Pin(TFT_LED_PIN, Pin.OUT).on() + +spi = SPI( + 0, + baudrate=TFT_BAUDRATE, + miso=Pin(TFT_MISO_PIN), + mosi=Pin(TFT_MOSI_PIN), + sck=Pin(TFT_CLK_PIN), +) +display = Display(spi, dc=Pin(TFT_DC_PIN), cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN)) +display.clear() + +# display.draw_image('ili9341/images/kururin_anim/kururin1.raw', 0, 0) +# display.draw_image('ili9341/images/RaspberryPiWB128x128.raw', 0, 0, 128, 128) + +# endregion +# region RGB PIXEL + +# num_leds, state_machine, pin, mode +led_rgb = Neopixel(1, 0, 23, "RGB") +led_rgb.brightness(30) + +hue = 1020 + + +def move_rgb(_): + global hue + hue += 150 + + color = led_rgb.colorHSV(hue, 255, 150) + led_rgb.fill(color) + led_rgb.show() + + +# endregion +# region main program + +print(df()) +display.fill_rectangle(0, 0, 239, 319, -1) + +# makes the rgb led rotate colors +rgb_timer = Timer(period=50, mode=Timer.PERIODIC, callback=move_rgb) +x = 0 +y = 0 +right = False +bottom = False +while True: + if x + 128 > 239: + right = True + elif x == 0: + right = False + if y + 128 > 319: + bottom = True + elif y == 0: + bottom = False + + if right: + x -= 1 + else: + x += 1 + if bottom: + y -= 1 + else: + y += 1 + + display.draw_image("ili9341/images/RaspberryPiWB128x128.raw", x, y, 128, 128) + sleep_ms(10) + +# endregion diff --git a/utils.py b/utils.py new file mode 100644 index 0000000..aa1ec96 --- /dev/null +++ b/utils.py @@ -0,0 +1,5 @@ +from os import statvfs + +def df(): + s = statvfs('//') + return ('{0} MB'.format((s[0]*s[3])/1048576))