UEFI Programmierung mit C unter Windows

Schritt für Schritt Anleitung für echte UEFI Anwendungen mit EDK2 – von der Einrichtung bis zur fertigen .efi-Datei.

Inhaltsverzeichnis

1. Voraussetzungen

⬆ Zurück nach oben

2. Visual Studio 2022

Bei der Installation folgende Komponenten auswählen:

⬆ Zurück nach oben

3. EDK II herunterladen

cd C:\
mkdir UEFI
cd UEFI
git clone https://github.com/tianocore/edk2.git
cd edk2
git submodule update --init --recursive
⬆ Zurück nach oben

4. Build-Umgebung vorbereiten

Wichtig: Im „x64 Native Tools Command Prompt for VS 2022“ ausführen!

cd C:\UEFI\edk2
edksetup.bat
⬆ Zurück nach oben

5. Eigene UEFI-App (HelloWorld)

Ordnerstruktur

edk2
└── MyApps
    └── HelloWorld
        ├── HelloWorld.c
        └── HelloWorld.inf

HelloWorld.c

  #include <Uefi.h>
#include <Library/UefiLib.h>
#include <Library/UefiBootServicesTableLib.h>

EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
{
    UINTN MaxMode;
    UINTN Mode;
    UINTN Columns, Rows;
    EFI_STATUS Status;
    EFI_INPUT_KEY Key;
    UINTN EventIndex;

    // Bildschirm leeren
    SystemTable->ConOut->ClearScreen(SystemTable->ConOut);

    // MaxMode holen
    MaxMode = SystemTable->ConOut->Mode->MaxMode;
    Print(L"Verfuegbare Textmodi: %d\n", MaxMode);

    // Alle Modi auflisten
    for (Mode = 0; Mode < MaxMode; Mode++) {
        Status = SystemTable->ConOut->QueryMode(SystemTable->ConOut, Mode, &Columns, &Rows);
        if (EFI_ERROR(Status)) {
            Print(L"Modus %d: nicht verfuegbar\n", Mode);
            continue;
        }
        Print(L"Modus %d: %u Spalten x %u Zeilen\n", Mode, Columns, Rows);
    }

    // 3 Sekunden Pause
    gBS->Stall(3000000);

    // Textmodus setzen (Modus 0)
    Mode = 0;
    SystemTable->ConOut->SetMode(SystemTable->ConOut, Mode);

    // Farben setzen - Gelber Text auf blauem Hintergrund
    SystemTable->ConOut->SetAttribute(
        SystemTable->ConOut,
        EFI_TEXT_ATTR(EFI_YELLOW, EFI_BLUE)
    );

    // Cursor auf X=10, Y=5 setzen
    SystemTable->ConOut->SetCursorPosition(SystemTable->ConOut, 10, 5);
    Print(L"Hallo UEFI an Position (10,5 - Blau/Gelb)");

    // Cursor auf neue Position setzen
    SystemTable->ConOut->SetCursorPosition(SystemTable->ConOut, 10, 7);

    // Andere Farbe - Grün auf schwarz
    SystemTable->ConOut->SetAttribute(
        SystemTable->ConOut,
        EFI_TEXT_ATTR(EFI_LIGHTGREEN, EFI_BLACK)
    );
    Print(L"Gruener Text auf schwarzem Hintergrund");

    // Andere Farbe - Weiß auf schwarz
    SystemTable->ConOut->SetAttribute(
        SystemTable->ConOut,
        EFI_TEXT_ATTR(EFI_WHITE, EFI_BLACK)
    );

    // Tastaturpuffer leeren
    while (SystemTable->ConIn->ReadKeyStroke(SystemTable->ConIn, &Key) == EFI_SUCCESS) {}

    // Warten auf neue Taste zum Beenden
    Print(L"\n\nDruecke eine Taste zum Beenden...");
    gBS->WaitForEvent(1, &SystemTable->ConIn->WaitForKey, &EventIndex);
    SystemTable->ConIn->ReadKeyStroke(SystemTable->ConIn, &Key);

    return EFI_SUCCESS;
}

UEFI Farbtabelle (Vordergrund & Hintergrund)

UEFI verwendet feste Farbkonstanten für Text (Foreground) und Hintergrund (Background). Diese werden mit EFI_TEXT_ATTR(FG, BG) kombiniert.

Vordergrundfarben (Text)

Konstante Beispiel
EFI_BLACK
EFI_BLUE
EFI_GREEN
EFI_CYAN
EFI_RED
EFI_MAGENTA
EFI_BROWN
EFI_LIGHTGRAY
EFI_DARKGRAY
EFI_LIGHTBLUE
EFI_LIGHTGREEN
EFI_LIGHTCYAN
EFI_LIGHTRED
EFI_LIGHTMAGENTA
EFI_YELLOW
EFI_WHITE

Hintergrundfarben

Hinweis: Nicht alle Firmware Implementierungen unterstützen jede Farbkombination korrekt.

Beispiel in C

SystemTable->ConOut->SetAttribute(
    SystemTable->ConOut,
    EFI_TEXT_ATTR(EFI_YELLOW, EFI_BLUE)
);

HelloWorld.inf

[Defines]
  INF_VERSION    = 0x00010005
  BASE_NAME      = MyOwnHelloWorld
  FILE_GUID      = 6987936E-ED34-44db-AE97-1FA5E4ED2117
  MODULE_TYPE    = UEFI_APPLICATION
  VERSION_STRING = 1.0
  ENTRY_POINT    = UefiMain

[Sources]
  HelloWorld.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  UefiApplicationEntryPoint
  UefiLib
  UefiBootServicesTableLib
  BaseLib
  BaseMemoryLib
⬆ Zurück nach oben

6. Modul in MdeModulePkg.dsc einbinden

[Components]
  MyApps/HelloWorld/HelloWorld.inf
  #MdeModulePkg/Application/HelloWorld/HelloWorld.inf

Der Pfad ist relativ zum edk2 Verzeichnis!

⬆ Zurück nach oben

7. target.txt konfigurieren

ACTIVE_PLATFORM = MdeModulePkg/MdeModulePkg.dsc
TARGET          = DEBUG
TARGET_ARCH     = X64
TOOL_CHAIN_TAG  = VS2022
⬆ Zurück nach oben

8. Build starten

Bevor du den Build startest, stelle sicher, dass nasm korrekt installiert und im PATH verfügbar ist. Außerdem muss der EDK2 Workspace korrekt gesetzt sein. In der Regel erledigt toolsetup.bat das automatisch.

Optional (nur falls nötig): Workspace manuell setzen

set WORKSPACE=C:\UEFI\edk2
set EDK_TOOLS_PATH=%WORKSPACE%\BaseTools
  1. Prüfen, wo nasm.exe liegt, z. B.:
    where nasm
    Sollte etwas wie C:\NASM\nasm.exe ausgeben.
  2. Den Pfad in der aktuellen Shell setzen (temporär):
    set PATH=C:\NASM;%PATH%
    Hinweis: Pfad zum Ordner, nicht zur exe direkt.
  3. Testen, ob nasm jetzt gefunden wird:
    nasm -v
  4. BaseTools sauber neu bauen:
    cd C:\UEFI\edk2\BaseTools
    toolsetup.bat
    nmake /f Makefile
  5. Dann erst dein HelloWorld Modul bauen:
    cd C:\UEFI\edk2
    build -p MdeModulePkg\MdeModulePkg.dsc -m MyApps\HelloWorld\HelloWorld.inf -a X64 -b DEBUG

Ergebnis: Der Build sollte nun ohne NASM- oder Workspace Fehler durchlaufen.

C:\UEFI\edk2\Build\MdeModule\DEBUG_VS2022\X64\MyApps\HelloWorld\HelloWorld\OUTPUT\MyOwnHelloWorld.efi
⬆ Zurück nach oben

9. Wichtige Hinweise

10. Eigener USB UEFI Stick mit BOOTX64.EFI erstellen

🎯 Ziel

✅ Schritt 1 – USB Stick vorbereiten (FAT32!)

⚠️ Achtung: Dabei werden alle Daten gelöscht.

Unter Windows mit diskpart:

  1. Eingabeaufforderung als Administrator öffnen
  2. diskpart eingeben
  3. list disk – verfügbare Datenträger anzeigen
  4. select disk X – USB Stick auswählen (X = Nummer!)
  5. clean – Stick komplett löschen
  6. create partition primary
  7. format fs=fat32 quick – wichtig für UEFI
  8. assign – Laufwerksbuchstaben zuweisen
  9. exit

✅ Alternative: Einfache Variante ohne diskpart (nur Rechtsklick)

Wenn du keine Partitionierung ändern musst, reicht oft dieser einfache Weg:

  1. Im Explorer den USB Stick rechtsklicken
  2. Formatieren… auswählen
  3. Dateisystem: FAT32 auswählen
  4. Schnellformatierung anhaken
  5. Starten klicken

Hinweis: Wenn FAT32 nicht auswählbar ist (Sticks > 32 GB), bitte die diskpart Methode oben verwenden.

✅ Schritt 2 – Verzeichnisstruktur anlegen

Auf dem USB Stick folgende Ordner erstellen:

\EFI\BOOT

Struktur:

USB STICK
└── EFI
    └── BOOT

Groß-/Kleinschreibung egal – Namen müssen aber exakt so sein.

✅ Schritt 3 – deine UEFI App kopieren

Beispielpfad deiner gebauten .efi Datei:

C:\UEFI\edk2\Build\...\MyOwnHelloWorld.efi
  1. Datei auf den USB Stick kopieren
  2. in den Ordner \EFI\BOOT
  3. umbenennen in BOOTX64.EFI

👉 Das ist der Standard-Fallback, den jede UEFI Firmware automatisch sucht.

Hinweis: Du kannst mehrere .efi Programme speichern, aber automatisch gestartet wird nur BOOTX64.EFI.

✅ Schritt 4 – BIOS/UEFI richtig einstellen

✅ Schritt 5 – Boot testen

Wenn alles korrekt ist:

🧰 Typische Fehler & Lösungen

❌ „No bootable device“
✔ Ordnerstruktur prüfen → \EFI\BOOT\BOOTX64.EFI

❌ Nur schwarzer Bildschirm
✔ Secure Boot deaktivieren
✔ CSM/Legacy ausschalten
✔ Stick auf FAT32 formatiert?

❌ Bootet Windows statt USB
✔ Bootreihenfolge ändern
✔ Boot Menü verwenden (F12, ESC etc.)

⬆ Zurück nach oben

UEFI PE/COFF Datei Aufbau

Klicke auf eine Sektion, um detaillierte Informationen und Strukturbeispiele anzuzeigen.

📦 PE/COFF Sektionen
.text — ausführbarer Code RX
.text – Executable Code Section - enthält den Maschinencode der DXE/PEIM/Driver Komponente - typisch: nur lesbar + ausführbar (RX) - keine Schreibrechte (W^X Sicherheitsprinzip) Typische Inhalte: - Funktionen - Trampoline - Inline-Konstanten kleiner Größe - Prolog/Epilog für Stackframes Beispiel Bytes (x86-64 Prolog): 55 48 89 E5 48 83 EC 20
.data — initialisierte Daten RW
.data – Read/Write initialisierte Daten - globale Variablen mit Startwert - z. B. int x = 5; Typisch: - Treiberstatus - Flags - globale Konfiguration Speicherrechte: - lesbar - schreibbar - nicht ausführbar Sicherheitsaspekt: - Missbrauch durch Overwrites → Control-Flow Hijack möglich
.bss — uninitialisierte Daten RW (Zero Init)
.bss – Uninitialisierte Daten - Variablen ohne Initialwert - beim Laden automatisch mit 0 gefüllt Beispiele: int counter; char buffer[1024]; Eigenschaften: - kein Platz in der Datei (nur Größe) - nur im Speicher alloziert
.rdata — konstante Daten RO
.rdata – Read-Only Data - GUID Tabellen - String-Literale - Lookup Tables - vTables (C++) UEFI-spezifisch: - EFI_SYSTEM_TABLE GUID - Protokoll GUIDs - Runtime Service Namen Beispiel String: "EFI_RUNTIME" -> 45 46 49 5F 52 55 4E 54 49 4D 45 00
.pdata — Exception Directory unwind info
.pdata – Exception / Function Table - Funktionsbereich → Unwind Info Pointer - benutzt von: - Structured Exception Handling (SEH) - Stack Unwinding - Debuggern Eintrag: - BeginAddress - EndAddress - UnwindData
.xdata — Unwind Informationen Stackframes
.xdata – Unwind Info - genaue Beschreibung von: - gespeicherten Registern - Stackverschiebung - Exception Handlern Sinn: - Callstack wiederherstellen - Crash-Analyse - Debugging
.reloc — Relocation Table Relocations
.reloc – Relocation Informationen - benötigt wenn Image nicht preferred load address - typischer Format: - Page RVA - BlockSize - Relocation Entries (TYPE + OFFSET) UEFI: - oft genutzt in DXE Treibern - weniger in RUNTIME Services Beispiel Eintrag: HIGHLOW 0x1234
.rsrc — Ressourcen HII, Bilder, Strings
.rsrc – Ressourcen - GUI Strings - Bitmaps/Logos - Forms (HII Database) UEFI HII = Human Interface Infrastructure Beinhaltet: - Fragebögen für BIOS Setup - Sprachstrings - Fonts & Images
.hii — Human Interface Infrastructure Setup UI Daten
.hii – spezielle Ressourcensektion - IFR (Internal Forms Representation) - BIOS Setup Menüs - Sprachpakete - Hotkeys - Secure Boot Texte Reverse Engineering: - IFR extrahieren → Setup versteckte Optionen sichtbar
⬆ Zurück nach oben

UEFI GOP Framebuffer – Aufbau und Funktionsweise

In modernen UEFI Systemen übernimmt GOP (Graphics Output Protocol) die Bildausgabe. Es ersetzt das alte VGA/VESA BIOS. Der Framebuffer ist dabei ein Bereich im RAM, in dem direkt die Pixel des Bildschirms liegen. Schreibst du in diesen Speicher, ändert sich das Bild sofort.


1. Was ist GOP?

GOP stellt Funktionen bereit, z. B.:

UEFI Apps verwenden kein klassisches VGA mehr, sie zeichnen fast immer über GOP.

2. Was ist der Framebuffer?

Der Framebuffer ist ein zusammenhängender Speicherbereich, in dem der Bildschirminhalt liegt. Jedes Pixel entspricht mehreren Bytes im Speicher.

Wichtige Parameter:

Diese Informationen liefert GOP über das Mode Objekt.


3. Speicheraufbau: Wie liegen Pixel im RAM?

Ein Bild besteht aus Zeilen – diese liegen hintereinander im Speicher. Innerhalb jeder Zeile folgen die Pixel nacheinander.

Adresse
┌─────────────────────────────────────────┐
│ Zeile 0  Pixel0 Pixel1 Pixel2 ...       │
│ Zeile 1  Pixel0 Pixel1 Pixel2 ...       │
│ Zeile 2  Pixel0 Pixel1 Pixel2 ...       │
└─────────────────────────────────────────┘

Bei 32 Bit pro Pixel entspricht ein Pixel = 4 Bytes.


4. Pitch / Stride

Pitch (oder Stride) bedeutet:

Wichtig:

Pitch niemals selbst ausrechnen, immer den GOP Wert verwenden.

5. Pixel Formate und Farben

Gängige Formate:

Typischer Aufbau (BGRA8):

Byte 0 → Blau
Byte 1 → Grün
Byte 2 → Rot
Byte 3 → Alpha / Reserved

Beispiele:

Alpha wird in UEFI meist ignoriert, es gibt keinen Compositor.

6. Berechnung der Pixeladresse

Formel:

pixel =
framebuffer_base
+ (y * pitch)
+ (x * bytes_per_pixel)

Typisch: bytes_per_pixel = 4.


7. Beispiel: Bildschirm rot füllen (Pseudocode)

// fb = Framebuffer Adresse
// pitch = Bytes pro Zeile
// bpp = Bytes pro Pixel (oft 4)

for (y = 0; y < height; y++) {
  for (x = 0; x < width; x++) {
    uint8_t* pixel = fb + y * pitch + x * bpp;
    pixel[0] = 0x00; // Blau
    pixel[1] = 0x00; // Grün
    pixel[2] = 0xFF; // Rot
    pixel[3] = 0x00; // Alpha / Reserved
  }
}

8. Ist die Framebuffer Adresse immer gleich?

Nein.

Abfragen über:

Gop->Mode->FrameBufferBase
Gop->Mode->FrameBufferSize
Adresse ist physikalisch, 64Bit Variablen verwenden.

9. Farbtiefe: 24 Bit vs. 32 Bit

Warum meistens 32 Bit?


10. Mehrere Bitmaps & Double Buffering

GOP liefert einen primären Framebuffer.

Du kannst aber:

Das nennt man:


11. Auflösung und Modi

GOP erlaubt:

Nach Moduswechsel:

Nach Auflösungswechsel: alle Parameter neu abfragen!

12. Performance Tipps


13. Sicherheitshinweis

UEFI hat kaum Schutzmechanismen – falscher Speicherzugriff kann System instabil machen.

⬆ Zurück nach oben

Zusätzliches Beispiel 1 - Grafik Ausgabe mit GOP

Dieses Beispiel zeigt die Nutzung des UEFI Graphics Output Protocol (GOP). Es wird direkt in den Framebuffer gezeichnet, mit inklusive Pixel, Linien, Rechtecke und Kreise Funktion.

⚠️ Hinweis: Das Beispiel funktioniert nur im Grafikmodus und ist ideal für QEMU oder OVMF.

#include <Uefi.h>
#include <Library/UefiLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Protocol/GraphicsOutput.h>

EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop;
UINT32 *FrameBuffer;
UINT32 Width, Height;

VOID DrawPixel(UINTN x, UINTN y, UINT32 color)
{
    if (x < Width && y < Height) {
        FrameBuffer[y * Width + x] = color;
    }
}

VOID DrawLine(INTN x0, INTN y0, INTN x1, INTN y1, UINT32 color)
{
    INTN dx = x1 > x0 ? x1 - x0 : x0 - x1;
    INTN dy = y1 > y0 ? y1 - y0 : y0 - y1;
    INTN sx = x0 < x1 ? 1 : -1;
    INTN sy = y0 < y1 ? 1 : -1;
    INTN err = dx - dy;
    INTN e2;

    while (1) {
        DrawPixel(x0, y0, color);
        if (x0 == x1 && y0 == y1) break;
        e2 = 2 * err;
        if (e2 > -dy) { err -= dy; x0 += sx; }
        if (e2 < dx)  { err += dx; y0 += sy; }
    }
}

VOID DrawRect(UINTN x0, UINTN y0, UINTN w, UINTN h, UINT32 color)
{
    UINTN x, y;
    for (y = y0; y < y0 + h; y++)
        for (x = x0; x < x0 + w; x++)
            DrawPixel(x, y, color);
}

VOID DrawCircle(INTN xc, INTN yc, INTN r, UINT32 color)
{
    INTN x = 0;
    INTN y = r;
    INTN d = 1 - r;

    while (y >= x)
    {
        for (INTN i = xc - x; i <= xc + x; i++) {
            DrawPixel(i, yc + y, color);
            DrawPixel(i, yc - y, color);
        }
        for (INTN i = xc - y; i <= xc + y; i++) {
            DrawPixel(i, yc + x, color);
            DrawPixel(i, yc - x, color);
        }

        x++;
        if (d < 0) {
            d = d + 2 * x + 1;
        } else {
            y--;
            d = d + 2 * (x - y) + 1;
        }
    }
}

VOID DrawRectOutline(UINTN x0, UINTN y0, UINTN w, UINTN h, UINT32 color)
{
    UINTN x, y;

    for (x = x0; x < x0 + w; x++) {
        DrawPixel(x, y0, color);         // Oben
        DrawPixel(x, y0 + h - 1, color); // Unten
    }

    for (y = y0; y < y0 + h; y++) {
        DrawPixel(x0, y, color);         // Links
        DrawPixel(x0 + w - 1, y, color); // Rechts
    }
}

VOID DrawCircleOutline(INTN xc, INTN yc, INTN r, UINT32 color)
{
    INTN x = 0;
    INTN y = r;
    INTN d = 3 - 2 * r;

    while (y >= x)
    {
        DrawPixel(xc + x, yc + y, color);
        DrawPixel(xc - x, yc + y, color);
        DrawPixel(xc + x, yc - y, color);
        DrawPixel(xc - x, yc - y, color);
        DrawPixel(xc + y, yc + x, color);
        DrawPixel(xc - y, yc + x, color);
        DrawPixel(xc + y, yc - x, color);
        DrawPixel(xc - y, yc - x, color);

        if (d < 0)
        {
            d = d + 4 * x + 6;
        }
        else
        {
            d = d + 4 * (x - y) + 10;
            y--;
        }
        x++;
    }
}

EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
{
    EFI_STATUS Status;
    EFI_INPUT_KEY Key;
    UINTN EventIndex;

    Status = gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid, NULL, (VOID **)&Gop);
    if (EFI_ERROR(Status)) {
        Print(L"GOP nicht gefunden!\n");
        return Status;
    }

    Width = Gop->Mode->Info->HorizontalResolution;
    Height = Gop->Mode->Info->VerticalResolution;
    FrameBuffer = (UINT32 *)Gop->Mode->FrameBufferBase;

    // Bildschirm schwarz
    DrawRect(0, 0, Width, Height, 0x000000);

	// Beispiele für symmetrisches Design 1024x768
	UINTN centerX = Width / 2;
	UINTN centerY = Height / 2;

	// Mittige Kreuzlinien für Symmetrie
	DrawLine(centerX, 0, centerX, Height, 0x888888);
	DrawLine(0, centerY, Width, centerY, 0x888888);

	// Punkte an symmetrischen Positionen
	DrawPixel(centerX, centerY, 0xFFFFFF);           // Zentrum
	DrawPixel(centerX + 150, centerY + 100, 0xFF0000);
	DrawPixel(centerX - 150, centerY + 100, 0x00FF00);
	DrawPixel(centerX + 150, centerY - 100, 0x0000FF);
	DrawPixel(centerX - 150, centerY - 100, 0xFFFF00);

	// Linien für geometrische Muster
	DrawLine(centerX - 200, centerY - 150, centerX + 200, centerY + 150, 0xFF00FF);
	DrawLine(centerX - 200, centerY + 150, centerX + 200, centerY - 150, 0x00FFFF);

	// Rechtecke
	DrawRect(centerX - 100, centerY - 50, 200, 100, 0xFF5555);       // Gefüllt
	DrawRectOutline(centerX - 150, centerY - 75, 300, 150, 0xFFFFFF); // Umriss

	// Kreise
	DrawCircleOutline(centerX, centerY, 100, 0xFFAA00); // Umriss
	DrawCircleOutline(centerX, centerY, 75, 0x00FF00); 
	DrawCircle(centerX, centerY, 50, 0x5555FF);   // Kleinere Umrisse

	// Einzelne Pixelakzente
	DrawPixel(centerX + 50, centerY + 50, 0xFF00FF);
	DrawPixel(centerX - 50, centerY - 50, 0x00FFFF);

    Print(L"GOP aktiv (%ux%u)\n", Width, Height);

    // 2 Sekunden Pause
    gBS->Stall(2000000);

    while (SystemTable->ConIn->ReadKeyStroke(SystemTable->ConIn, &Key) == EFI_SUCCESS) {}
    Print(L"\nTaste druecken zum Beenden...");
    gBS->WaitForEvent(1, &SystemTable->ConIn->WaitForKey, &EventIndex);
    SystemTable->ConIn->ReadKeyStroke(SystemTable->ConIn, &Key);

    return EFI_SUCCESS;
}

💡 Dieses Prinzip ist die Grundlage für:

⬆ Zurück nach oben

Zusätzliches Beispiel 2 - Kleiner Taschenrechner

Dieses Beispiel demonstriert die Erstellung eines kleinen, interaktiven UEFI Konsolenprogramms. Der Benutzer kann zwei Zahlen eingeben und anschließend eine Rechenoperation (Addition, Subtraktion, Multiplikation, Division) auswählen.

Das Programm nutzt die Standard Konsolenfunktionen von UEFI ConOut für die Textausgabe und ConIn für die Tastatureingabe. Es zeigt, wie man Benutzerinteraktionen in einer UEFI Anwendung realisieren kann.

#include <Uefi.h>
#include <Library/UefiLib.h>
#include <Library/UefiBootServicesTableLib.h>

EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
{
    EFI_STATUS Status;
    EFI_INPUT_KEY Key;
    CHAR16 Buffer[20];
    INTN Num1 = 0, Num2 = 0;
    CHAR16 Operator = L'+';
    UINTN Index;
    BOOLEAN Repeat = TRUE;

    while (Repeat) {
        SystemTable->ConOut->ClearScreen(SystemTable->ConOut);
        SystemTable->ConOut->SetCursorPosition(SystemTable->ConOut, 0, 0);

        SystemTable->ConOut->SetAttribute(SystemTable->ConOut, EFI_WHITE | EFI_BACKGROUND_BLACK);
        Print(L"UEFI Taschenrechner\n");
        Print(L"===================\n\n");

        SystemTable->ConOut->SetAttribute(SystemTable->ConOut, EFI_LIGHTGREEN | EFI_BACKGROUND_BLACK);
        Print(L"Geben Sie die erste Zahl ein: ");
        Index = 0;
        while (1) {
            Status = SystemTable->ConIn->ReadKeyStroke(SystemTable->ConIn, &Key);
            if (EFI_ERROR(Status)) continue;

            if (Key.UnicodeChar >= L'0' && Key.UnicodeChar <= L'9') {
                Buffer[Index++] = Key.UnicodeChar;
                Buffer[Index] = L'\0';
                Print(L"%c", Key.UnicodeChar);
            } else if (Key.UnicodeChar == CHAR_CARRIAGE_RETURN) {
                Print(L"\n");
                break;
            } else if (Key.UnicodeChar == CHAR_BACKSPACE && Index > 0) {
                Index--;
                Buffer[Index] = L'\0';
                Print(L"\b \b");
            }
        }
        Num1 = StrDecimalToUintn(Buffer);

        Print(L"Geben Sie die zweite Zahl ein: ");
        Index = 0;
        while (1) {
            Status = SystemTable->ConIn->ReadKeyStroke(SystemTable->ConIn, &Key);
            if (EFI_ERROR(Status)) continue;

            if (Key.UnicodeChar >= L'0' && Key.UnicodeChar <= L'9') {
                Buffer[Index++] = Key.UnicodeChar;
                Buffer[Index] = L'\0';
                Print(L"%c", Key.UnicodeChar);
            } else if (Key.UnicodeChar == CHAR_CARRIAGE_RETURN) {
                Print(L"\n");
                break;
            } else if (Key.UnicodeChar == CHAR_BACKSPACE && Index > 0) {
                Index--;
                Buffer[Index] = L'\0';
                Print(L"\b \b");
            }
        }
        Num2 = StrDecimalToUintn(Buffer);

        SystemTable->ConOut->SetAttribute(SystemTable->ConOut, EFI_YELLOW | EFI_BACKGROUND_BLACK);
        Print(L"Waehlen Sie eine Operation:\n");
        Print(L"  1: +\n");
        Print(L"  2: -\n");
        Print(L"  3: *\n");
        Print(L"  4: /\n");
        Print(L"Eingabe (1-4): ");

        while (1) {
            Status = SystemTable->ConIn->ReadKeyStroke(SystemTable->ConIn, &Key);
            if (EFI_ERROR(Status)) continue;

            if (Key.UnicodeChar >= L'1' && Key.UnicodeChar <= L'4') {
                switch (Key.UnicodeChar) {
                    case L'1': Operator = L'+'; break;
                    case L'2': Operator = L'-'; break;
                    case L'3': Operator = L'*'; break;
                    case L'4': Operator = L'/'; break;
                }
                Print(L"%c\n", Key.UnicodeChar);
                break;
            }
        }

        INTN Result = 0;
        BOOLEAN DivByZero = FALSE;
        switch (Operator) {
            case L'+': Result = Num1 + Num2; break;
            case L'-': Result = Num1 - Num2; break;
            case L'*': Result = Num1 * Num2; break;
            case L'/': 
                if (Num2 != 0) Result = Num1 / Num2;
                else DivByZero = TRUE;
                break;
        }

        if (DivByZero) {
            SystemTable->ConOut->SetAttribute(SystemTable->ConOut, EFI_RED | EFI_BACKGROUND_BLACK);
            Print(L"Fehler: Division durch 0!\n");
        } else {
            SystemTable->ConOut->SetAttribute(SystemTable->ConOut, EFI_CYAN | EFI_BACKGROUND_BLACK);
            Print(L"Ergebnis: %d %c %d = %d\n", Num1, Operator, Num2, Result);
        }

        SystemTable->ConOut->SetAttribute(SystemTable->ConOut, EFI_MAGENTA | EFI_BACKGROUND_BLACK);
        Print(L"\nNoch eine Rechnung? (J/N): ");
        while (1) {
            Status = SystemTable->ConIn->ReadKeyStroke(SystemTable->ConIn, &Key);
            if (EFI_ERROR(Status)) continue;

            if (Key.UnicodeChar == L'J' || Key.UnicodeChar == L'j') {
                Repeat = TRUE;
                Print(L"%c\n\n", Key.UnicodeChar);
                break;
            } else if (Key.UnicodeChar == L'N' || Key.UnicodeChar == L'n') {
                Repeat = FALSE;
                Print(L"%c\n\n", Key.UnicodeChar);
                break;
            }
        }
    }

    SystemTable->ConOut->SetAttribute(SystemTable->ConOut, EFI_WHITE | EFI_BACKGROUND_BLACK);
    Print(L"Programm beendet. Taste druecken zum Schliessen...");
    gBS->WaitForEvent(1, &SystemTable->ConIn->WaitForKey, &Index);
    SystemTable->ConIn->ReadKeyStroke(SystemTable->ConIn, &Key);

    return EFI_SUCCESS;
}
⬆ Zurück nach oben

Zusätzliches Beispiel 3 - UEFI Snake

Dieses Beispiel demonstriert die Erstellung eines kleinen, interaktiven UEFI Konsolen- und Grafikprogramms. Das Spiel implementiert die klassische Snake Mechanik auf einem UEFI Bildschirm.

Der Benutzer steuert die Schlange über die Tasten Q A N M für Oben, Unten, Links, Rechts und kann das Spiel mit ESC beenden. Das Programm zeigt, wie man:

Die Schlange und das Essen werden als farbige Rechtecke dargestellt, der Rahmen des Spielfeldes wird gezeichnet und der Punktestand oben links angezeigt. Die Geschwindigkeit der Schlange nimmt zu, wenn sie das Essen frisst.

#include <Uefi.h>
#include <Library/UefiLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Protocol/GraphicsOutput.h>
#include <Protocol/SimpleTextIn.h>

#define TILE         20
#define MAX_SNAKE    256
#define START_LEN    5
#define SPEED_STEP   10000   // Verringerung pro Schwelle
#define SPEED_MIN    50000   // maximale Geschwindigkeit
#define TOP_MARGIN   20      // Platz für Text oben
#define BLOCK_GAP    2       // Abstand zwischen Snake-Blöcken

typedef struct { INTN x; INTN y; } POINT;

EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop;
EFI_SYSTEM_TABLE *gST;

UINT32 *FrameBuffer;
UINT32 Width, Height;

POINT Snake[MAX_SNAKE];
UINTN SnakeLen = START_LEN;

INTN DirX = 1, DirY = 0;
INTN NextDirX = 1, NextDirY = 0;

POINT Food;
UINTN Score = 0;
UINTN SpeedUs = 200000; 	  // aktuelle Geschwindigkeit

VOID DrawPixel(UINTN x, UINTN y, UINT32 c)
{
    if (x < Width && y < Height)
        FrameBuffer[y * Width + x] = c;
}

VOID DrawRect(UINTN x, UINTN y, UINTN w, UINTN h, UINT32 c)
{
    for (UINTN py = y; py < y + h; py++)
        for (UINTN px = x; px < x + w; px++)
            DrawPixel(px, py, c);
}

VOID DrawBorder(UINT32 color)
{
    UINTN w = Width;
    UINTN h = Height;
    UINTN margin = TILE;

    UINTN top    = TOP_MARGIN + 40;
    UINTN bottom = h - 1 - margin - 8;
    UINTN left   = margin;
    UINTN right  = w - 1 - margin - 4;

    if (top >= bottom) bottom = top + 1;
    if (left >= right) right = left + 1;

    for (UINTN x = left; x <= right; x++) {
        DrawPixel(x, top, color);
        DrawPixel(x, bottom, color);
    }
    for (UINTN y = top; y <= bottom; y++) {
        DrawPixel(left, y, color);
        DrawPixel(right, y, color);
    }
}

VOID EraseTail(POINT tail)
{
    DrawRect(tail.x * TILE, TOP_MARGIN + tail.y * TILE, TILE, TILE, 0x000000);
}

UINT32 Rand(UINT32 max)
{
    static UINT32 seed = 0x12345678;
    seed = seed * 1664525 + 1013904223;
    return seed % max;
}

STATIC BOOLEAN IsOccupied(INTN x, INTN y)
{
    for (UINTN i = 0; i < SnakeLen; i++)
        if (Snake[i].x == x && Snake[i].y == y)
            return TRUE;
    return FALSE;
}

VOID SpawnFood(VOID)
{
    INTN left   = 2;
    INTN right  = (INTN)((Width  - 1 - TILE - 4) / TILE) - 2;
    INTN top    = (TOP_MARGIN + 40) / TILE + 2;
    INTN bottom = (INTN)((Height - 1 - TILE - 8) / TILE) - 2;

    INTN x, y;
    do {
        x = (INTN)Rand((UINT32)(right - left + 1)) + left;
        y = (INTN)Rand((UINT32)(bottom - top + 1)) + top;
    } while (IsOccupied(x, y));

    Food.x = x;
    Food.y = y;
}

VOID DrawScoreText(VOID)
{
    // Cursor ganz nach links oben
    gST->ConOut->SetCursorPosition(gST->ConOut, 0, 0);

    // Zeile löschen (wichtig gegen Textreste!)
    Print(L"                                ");

    // Wieder an den Anfang
    gST->ConOut->SetCursorPosition(gST->ConOut, 0, 0);

    Print(L"Score: %u   Speed: %u", Score, SpeedUs / 1000);
}

VOID ResetGame(VOID)
{
    DrawRect(0, TOP_MARGIN, Width, Height - TOP_MARGIN, 0x000000);

    SnakeLen = START_LEN;
    Score = 0;
    DirX = 1; DirY = 0;
    NextDirX = 1; NextDirY = 0;
    SpeedUs = 200000;

    for (UINTN i = 0; i < SnakeLen; i++) {
        Snake[i].x = 10 - (INTN)i;
        Snake[i].y = 5;
    }

    SpawnFood();
	
	DrawScoreText();
    
    gST->ConOut->SetCursorPosition(gST->ConOut, 0, 1);
    Print(L"UEFI Snake | Q A N M | ESC");
}

EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
{
    EFI_STATUS Status;
    EFI_INPUT_KEY Key;

    gST = SystemTable;

    Status = gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid, NULL, (VOID**)&Gop);
    if (EFI_ERROR(Status)) return Status;

    Width  = Gop->Mode->Info->HorizontalResolution;
    Height = Gop->Mode->Info->VerticalResolution;
    FrameBuffer = (UINT32*)Gop->Mode->FrameBufferBase;

    ResetGame();

    while (TRUE) {
        BOOLEAN GameOver = FALSE;

        Status = gST->ConIn->ReadKeyStroke(gST->ConIn, &Key);
        if (!EFI_ERROR(Status)) {
            if (Key.ScanCode == SCAN_ESC) break;
            switch (Key.UnicodeChar) {
                case L'q': case L'Q': NextDirX = 0; NextDirY = -1; break;
                case L'a': case L'A': NextDirX = 0; NextDirY = 1; break;
                case L'n': case L'N': NextDirX = -1; NextDirY = 0; break;
                case L'm': case L'M': NextDirX = 1; NextDirY = 0; break;
            }
        }

        if (!(NextDirX == -DirX && NextDirY == -DirY)) {
            DirX = NextDirX;
            DirY = NextDirY;
        }

        POINT lastTail = Snake[SnakeLen - 1];

        for (INTN i = (INTN)SnakeLen - 1; i > 0; i--)
            Snake[i] = Snake[i - 1];

        Snake[0].x += DirX;
        Snake[0].y += DirY;

        if (Snake[0].x <= 0 || Snake[0].y <= 1 ||
            Snake[0].x >= (INTN)(Width / TILE - 1) ||
            Snake[0].y >= (INTN)((Height - TOP_MARGIN)/TILE - 1))
            GameOver = TRUE;

        for (UINTN i = 1; i < SnakeLen; i++)
            if (Snake[0].x == Snake[i].x && Snake[0].y == Snake[i].y)
                GameOver = TRUE;

        if (!GameOver && Snake[0].x == Food.x && Snake[0].y == Food.y) {
            if (SnakeLen < MAX_SNAKE) SnakeLen++;
            Score++;
            SpawnFood();
            if (SpeedUs > SPEED_MIN) SpeedUs -= SPEED_STEP;
        }

        if (GameOver) {
            ResetGame();
            continue;
        }

        if (!(Snake[0].x == Food.x && Snake[0].y == Food.y))
            EraseTail(lastTail);

        for (UINTN i = 0; i < SnakeLen; i++) {
            UINT32 color = (i == 0) ? 0x00FF00 : 0x0000FF;
            DrawRect(
                Snake[i].x * TILE + BLOCK_GAP/2,
                TOP_MARGIN + Snake[i].y * TILE + BLOCK_GAP/2,
                TILE - BLOCK_GAP,
                TILE - BLOCK_GAP,
                color
            );
        }

        DrawRect(
            Food.x * TILE + BLOCK_GAP/2,
            TOP_MARGIN + Food.y * TILE + BLOCK_GAP/2,
            TILE - BLOCK_GAP,
            TILE - BLOCK_GAP,
            0xFF0000
        );

        DrawBorder(0xFFFFFF);
		
		DrawScoreText();

        gST->ConOut->SetCursorPosition(gST->ConOut, 0, 1);
        Print(L"UEFI Snake | Q A N M | ESC");

        gBS->Stall(SpeedUs);
    }

    DrawRect(0, TOP_MARGIN, Width, Height - TOP_MARGIN, 0x000000);
 
    Print(L"Ende\n");

    return EFI_SUCCESS;
}
⬆ Zurück nach oben

Beispiel 4 – UEFI Sprite und Tile Demo

Dieses Beispiel zeigt eine einfache UEFI Grafikdemo mit Sprites und Kacheln (Tiles). Es nutzt das Graphics Output Protocol (GOP), um Pixel direkt auf den Bildschirm zu zeichnen.

Die Demo demonstriert:

Die Sprites und Tiles sind 16×16 Pixel groß (SPRITE_SIZE). Transparent dargestellte Pixel werden während der Bewegung nicht überschrieben (TRANSPARENT). Hintergrundpixel werden vor dem Zeichnen gespeichert (SaveBackground) und nach dem Bewegen wiederhergestellt (RestoreBackground), sodass die Grafiken sauber über dem Hintergrund angezeigt werden.

#include <Uefi.h>
#include <Library/UefiLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Protocol/GraphicsOutput.h>

#define SPRITE_SIZE   16
#define TRANSPARENT   0x00000000
#define MOVE_DELAY_US 30000
#define SPEED         2

#define TILE_EMPTY      0
#define TILE_FLOOR      1
#define TILE_WALL       2
#define TILE_SKY        3
#define TILE_CLOUD      4
#define TILE_COIN       5
#define TILE_GRASS      6

#define MAP_WIDTH 18
#define MAP_HEIGHT 11

EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop;
volatile UINT32 *FrameBuffer;
UINT32 Width, Height;
EFI_SYSTEM_TABLE *gST;

UINTN SpriteX = 512;
UINTN SpriteY = 350;
volatile UINT32 SpriteBackup[SPRITE_SIZE * SPRITE_SIZE];

STATIC VOID DrawPixel(UINTN x, UINTN y, UINT32 color);
STATIC VOID DrawTile(UINTN x, UINTN y, UINT8 tile);
STATIC VOID ClearFrameBuffer();
STATIC VOID DrawMap();
STATIC VOID DrawSprite(UINTN x, UINTN y);
STATIC VOID SaveBackground(UINTN x, UINTN y);
STATIC VOID RestoreBackground(UINTN x, UINTN y);

UINT32 Sprite[SPRITE_SIZE * SPRITE_SIZE] = {
0x00FF0000,0x00FF0000,0x00FF0000,0x00000000,0x00000000,0x00000000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00000000,0x00000000,0x00000000,0x00FF0000,0x00FF0000,0x00FF0000,
0x00000000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FF0000,0x00FF0000,0x00FF0000,0x00000000,
0x00000000,0x00000000,0x00FF0000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FF0000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00000000,0x00000000,
0x00000000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00000000,
0x00000000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00000000,0x00000000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00000000,0x00000000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00000000,
0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00000000,0x00000000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00000000,0x00000000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,
0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x000000FF,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,
0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x000000FF,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,
0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,
0x00000000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFFFF,0x00FFFFFF,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFFFF,0x00FFFFFF,0x00FFFF00,0x00FFFF00,0x00000000,
0x00000000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00000000,
0x00000000,0x00000000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00000000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00000000,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000
};


UINT32 TileSprites[7][SPRITE_SIZE * SPRITE_SIZE] = {
    /* 0 - Nichts (transparent) */
    {
        0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
        0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
        0x0000FF00,0x00008000,0x00008000,0x0000FF00,0x0000FF00,0x00008000,0x00008000,0x0000FF00,
        0x0000FF00,0x00008000,0x00008000,0x0000FF00,0x0000FF00,0x00008000,0x00008000,0x0000FF00,
        0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
        0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
        0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
        0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
        0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
        0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
        0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
        0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
        0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
        0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
        0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
        0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
    },

    /* 1 - Boden (braun) */
    {
0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,
0x00800000,0x00FF8000,0x00804040,0x00FF8000,0x00800000,0x00FF8000,0x00804040,0x00FF8000,0x00FF8000,0x00FF8000,0x00800000,0x00FF8000,0x00800000,0x00FF8000,0x00FF8000,0x00FF8000,
0x00800000,0x00800000,0x00FF8000,0x00FF8000,0x00FF8000,0x00800000,0x00800000,0x00800000,0x00FF8000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,
0x00800000,0x00FF8000,0x00FF8000,0x00804040,0x00FF8000,0x00FF8000,0x00804040,0x00800000,0x00800000,0x00FF8000,0x00FF8000,0x00800000,0x00800000,0x00800000,0x00FF8000,0x00FF8000,
0x00800000,0x00804040,0x00804040,0x00804040,0x00800000,0x00FF8000,0x00FF8000,0x00800000,0x00800000,0x00800000,0x00FF8000,0x00FF8000,0x00800000,0x00804040,0x00800000,0x00FF8000,
0x00800000,0x00FF8000,0x00804040,0x00800000,0x00FF8000,0x00FF8000,0x00804040,0x00FF8000,0x00800000,0x00800000,0x00FF8000,0x00800000,0x00804040,0x00804040,0x00800000,0x00800000,
0x00804040,0x00FF8000,0x00FF8000,0x00FF8000,0x00800000,0x00800000,0x00FF8000,0x00FF8000,0x00FF8000,0x00800000,0x00800000,0x00804040,0x00800000,0x00804040,0x00FF8000,0x00800000,
0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00FF8000,0x00800000,0x00804040,0x00800000,0x00800000,0x00804040,0x00800000,0x00FF8000,0x00800000,0x00800000,0x00800000,
0x00FF8000,0x00800000,0x00FF8000,0x00804040,0x00804040,0x00FF8000,0x00800000,0x00800000,0x00800000,0x00FF8000,0x00800000,0x00800000,0x00800000,0x00804040,0x00800000,0x00800000,
0x00800000,0x00804040,0x00800000,0x00800000,0x00800000,0x00800000,0x00FF8000,0x00804040,0x00800000,0x00800000,0x00800000,0x00FF8000,0x00804040,0x00FF8000,0x00800000,0x00800000,
0x00800000,0x00FF8000,0x00800000,0x00804040,0x00FF8000,0x00800000,0x00800000,0x00800000,0x00800000,0x00FF8000,0x00800000,0x00804040,0x00FF8000,0x00800000,0x00800000,0x00800000,
0x00800000,0x00800000,0x00800000,0x00800000,0x00804040,0x00800000,0x00FF8000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00FF8000,0x00800000,
0x00800000,0x00804040,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00804040,0x00800000,0x00800000,0x00FF8000,0x00FF8000,0x00800000,0x00800000,0x00800000,
0x00800000,0x00800000,0x00FF8000,0x00800000,0x00800000,0x00FF8000,0x00800000,0x00800000,0x00FF8000,0x00800000,0x00804040,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,
0x00800000,0x00800000,0x00804040,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00804040,0x00800000,0x00804040,0x00804040,0x00800000,0x00800000,0x00FF8000,0x00800000,
0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,
    },

    /* 2 - Mauerplattform (grau) */
    {
0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,
0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,
0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,
0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,
0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,
0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,
0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,
0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,
0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,
0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,
0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,
0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,
0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,
0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,
0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00808080,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,
0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,0x00808080,
    },

    /* 3 - Himmel (hellblau) */
    {
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
    },

    /* 4 - Wolke (weiß mit leichtem Muster) */
    {
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00C0C0C0,0x00FFFFFF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x00FFFFFF,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00FFFFFF,0x00FFFFFF,0x00C0C0C0,0x00FFFFFF,0x00C0C0C0,0x00C0C0C0,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00C0C0C0,0x00FFFFFF,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x000000FF,
0x000000FF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00C0C0C0,0x00C0C0C0,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,
0x000000FF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00C0C0C0,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,
0x000000FF,0x00FFFFFF,0x00C0C0C0,0x00FFFFFF,0x00C0C0C0,0x00C0C0C0,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00C0C0C0,0x00FFFFFF,
0x000000FF,0x000000FF,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00C0C0C0,0x00FFFFFF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
   },

    /* 5 - Goldmünze (gelb) */
    {
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x00FF0000,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00800000,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x00800000,0x00C0C0C0,0x00FFFFFF,0x00FFFFFF,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00800000,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x00800000,0x00800000,0x00FFFFFF,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00800000,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x00FF0000,0x00FFFFFF,0x00FFFFFF,0x00FF0000,0x00FF0000,0x00FFFFFF,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00800000,0x000000FF,
0x000000FF,0x00800000,0x00C0C0C0,0x00FFFFFF,0x00FF0000,0x00FF0000,0x00FF0000,0x00FFFFFF,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00800000,0x000000FF,
0x000000FF,0x00800000,0x00FF0000,0x00C0C0C0,0x00FF0000,0x00FF0000,0x00FF0000,0x00FFFFFF,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00800000,0x000000FF,
0x000000FF,0x00800000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00C0C0C0,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00800000,0x000000FF,
0x000000FF,0x00800000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00800000,0x000000FF,
0x000000FF,0x00800000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00800000,0x000000FF,
0x000000FF,0x000000FF,0x00800000,0x00800000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00800000,0x00FF0000,0x000000FF,
0x000000FF,0x000000FF,0x00800000,0x00800000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00800000,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x00800000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00FF0000,0x00800000,0x00800000,0x00800000,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x00800000,0x00800000,0x00800000,0x00800000,0x00C0C0C0,0x00800000,0x00C0C0C0,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,0x000000FF,
    },

    /* 6 - Wiese (grün) */
    {
0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,
0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,
0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,
0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,
0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,0x00808000,
0x00808000,0x00808000,0x00808000,0x00008000,0x00808000,0x00808000,0x00808000,0x00008000,0x00808000,0x00808000,0x00808000,0x00008000,0x00808000,0x00808000,0x00008000,0x00808000,
0x00808000,0x00808000,0x00808000,0x00008000,0x00808000,0x00808000,0x00808000,0x00008000,0x00808000,0x00808000,0x00808000,0x00008000,0x00808000,0x00808000,0x00008000,0x00808000,
0x00008000,0x00808000,0x00008000,0x00008000,0x00008000,0x00008000,0x00808000,0x00008000,0x00008000,0x00008000,0x00808000,0x00008000,0x00008000,0x00008000,0x00000000,0x00008000,
0x00008000,0x00000000,0x00000000,0x00800000,0x00000000,0x00008000,0x00008000,0x00008000,0x00800000,0x00000000,0x00008000,0x00008000,0x00800000,0x00000000,0x00800000,0x00008000,
0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00008000,0x00800000,0x00800000,0x00800000,0x00000000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,
0x00800000,0x00808000,0x00800000,0x00800000,0x00808000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00808000,
0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00808000,0x00800000,0x00800000,0x00808000,0x00808000,0x00808000,0x00800000,
0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00808000,0x00800000,0x00800000,
0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,
0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,
0x00800000,0x00000000,0x00000000,0x00800000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
    }
};

UINT8 TileMap[MAP_HEIGHT][MAP_WIDTH] = {
    {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3},
    {3,3,3,4,3,3,3,4,3,3,3,3,3,3,3,4,3,3},
    {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3},
    {3,3,3,3,3,2,2,2,3,3,3,3,2,2,2,2,2,3},
    {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3},
    {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3},
    {3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,2,2},
    {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3},
    {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3},
    {6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6},
    {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
};

STATIC VOID ClearFrameBuffer()
{
    UINTN NumPixels = Width * Height;
    for (UINTN i = 0; i < NumPixels; i++) {
        FrameBuffer[i] = 0x00000000; // Schwarz
    }
}


STATIC VOID DrawPixel(UINTN x, UINTN y, UINT32 color) {
    if (x < Width && y < Height)
        FrameBuffer[y * Width + x] = color;
}

STATIC VOID DrawTile(UINTN x, UINTN y, UINT8 tile) {
    for (UINTN j = 0; j < SPRITE_SIZE; j++)
        for (UINTN i = 0; i < SPRITE_SIZE; i++)
            if (TileSprites[tile][j*SPRITE_SIZE+i] != TRANSPARENT)
                DrawPixel(x+i, y+j, TileSprites[tile][j*SPRITE_SIZE+i]);
}

STATIC VOID DrawMap()
{
    UINTN mapPixelWidth;
    UINTN mapPixelHeight;
    UINTN offsetX;
    UINTN offsetY;
    UINTN row;
    UINTN col;

    mapPixelWidth  = MAP_WIDTH  * SPRITE_SIZE;
    mapPixelHeight = MAP_HEIGHT * SPRITE_SIZE;

    offsetX = (Width  - mapPixelWidth)  / 2;
    offsetY = (Height - mapPixelHeight) / 2;

    for (row = 0; row < MAP_HEIGHT; row++) {
        for (col = 0; col < MAP_WIDTH; col++) {
            DrawTile(
                offsetX + col * SPRITE_SIZE,
                offsetY + row * SPRITE_SIZE,
                TileMap[row][col]
            );
        }
    }
}

STATIC VOID SaveBackground(UINTN x, UINTN y) {
    for (UINTN j = 0; j < SPRITE_SIZE; j++)
        for (UINTN i = 0; i < SPRITE_SIZE; i++)
            if (x+i < Width && y+j < Height)
                SpriteBackup[j*SPRITE_SIZE+i] = FrameBuffer[(y+j)*Width+(x+i)];
}

STATIC VOID RestoreBackground(UINTN x, UINTN y) {
    for (UINTN j = 0; j < SPRITE_SIZE; j++)
        for (UINTN i = 0; i < SPRITE_SIZE; i++)
            if (x+i < Width && y+j < Height)
                FrameBuffer[(y+j)*Width+(x+i)] = SpriteBackup[j*SPRITE_SIZE+i];
}

STATIC VOID DrawSprite(UINTN x, UINTN y) {
    for (UINTN j = 0; j < SPRITE_SIZE; j++)
        for (UINTN i = 0; i < SPRITE_SIZE; i++)
            if (Sprite[j*SPRITE_SIZE+i] != TRANSPARENT)
                DrawPixel(x+i, y+j, Sprite[j*SPRITE_SIZE+i]);
}

EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) {
    gST = SystemTable;

    EFI_STATUS Status = gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid, NULL, (VOID**)&Gop);
    if (EFI_ERROR(Status)) return Status;

    ClearFrameBuffer();
	
    Width  = Gop->Mode->Info->HorizontalResolution;
    Height = Gop->Mode->Info->VerticalResolution;
    FrameBuffer = (volatile UINT32*)Gop->Mode->FrameBufferBase;

    gST->ConOut->SetCursorPosition(gST->ConOut, 30, 25);
    Print(L"Smiley bewegen: W/A/S/D = gerade, Q/Y/E/C = diagonal, ESC = Beenden");
	
    DrawMap();
    SaveBackground(SpriteX, SpriteY);
    DrawSprite(SpriteX, SpriteY);

    while (TRUE) {
        EFI_INPUT_KEY Key;
        Status = gST->ConIn->ReadKeyStroke(gST->ConIn, &Key);
        if (!EFI_ERROR(Status)) {
            RestoreBackground(SpriteX, SpriteY);

			// ESC prüfen
			if ((Key.UnicodeChar == 0 && Key.ScanCode == SCAN_ESC) || Key.UnicodeChar == 0x1B) {
				return EFI_SUCCESS; // Programm beenden
			}
		
            CHAR16 ch = Key.UnicodeChar;		
            if (ch >= L'A' && ch <= L'Z') ch += 32;
				
            switch (ch) {
                case L'w': SpriteY = (SpriteY > 0) ? SpriteY-SPEED : 0; break;
                case L'x': SpriteY = (SpriteY + SPRITE_SIZE < Height) ? SpriteY+SPEED : SpriteY; break;
                case L'a': SpriteX = (SpriteX > 0) ? SpriteX-SPEED : 0; break;
                case L'd': SpriteX = (SpriteX + SPRITE_SIZE < Width) ? SpriteX+SPEED : SpriteX; break;
                case L'q': SpriteX = (SpriteX > 0) ? SpriteX-SPEED : 0; SpriteY = (SpriteY > 0) ? SpriteY-SPEED : 0; break;
                case L'z': SpriteX = (SpriteX > 0) ? SpriteX-SPEED : 0; SpriteY = (SpriteY + SPRITE_SIZE < Height) ? SpriteY+SPEED : SpriteY; break;
                case L'e': SpriteX = (SpriteX + SPRITE_SIZE < Width) ? SpriteX+SPEED : SpriteX; SpriteY = (SpriteY > 0) ? SpriteY-SPEED : 0; break;
                case L'c': SpriteX = (SpriteX + SPRITE_SIZE < Width) ? SpriteX+SPEED : SpriteX; SpriteY = (SpriteY + SPRITE_SIZE < Height) ? SpriteY+SPEED : SpriteY; break;
                case 0x1B: return EFI_SUCCESS; // ESC
            }

            SaveBackground(SpriteX, SpriteY);
            DrawSprite(SpriteX, SpriteY);
        }
        gBS->Stall(MOVE_DELAY_US);
    }

    RestoreBackground(SpriteX, SpriteY);
    return EFI_SUCCESS;
}
⬆ Zurück nach oben

Zusätzliches Beispiel 5 - Eigenes EFI Bootmenü

In diesem Beispiel wird ein UEFI Bootmenü erstellt. Das Menü zeigt mehrere EFI Dateien an, die ausgewählt und direkt gestartet werden können. Die Navigation erfolgt über die Pfeiltasten, die Auswahl über Enter, und ESC beendet das Menü.

⚠️ Hinweis: Das Menü läuft im Textmodus der Konsole. Vor der Anzeige wird der Modus automatisch auf eine geringe Auflösung reduziert, damit das Menü korrekt dargestellt wird. Nach dem Beenden wird der Originalmodus wiederhergestellt.

INF Datei für das Projekt

Die INF Datei definiert die Moduleigenschaften, Quellen und benötigten Bibliotheken. Wichtige Punkte:


[Defines]
  INF_VERSION        = 0x00010005
  BASE_NAME          = MyOwnHelloWorld
  FILE_GUID          = 6987936E-ED34-44db-AE97-1FA5E4ED2117
  MODULE_TYPE        = UEFI_APPLICATION
  VERSION_STRING     = 1.0
  ENTRY_POINT        = BootManagerMenuEntry

[Sources]
  HelloWorld.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  UefiApplicationEntryPoint
  UefiLib
  UefiBootServicesTableLib
  UefiRuntimeServicesTableLib
  BaseLib
  BaseMemoryLib
  UefiBootManagerLib
  HiiLib
  MemoryAllocationLib
  DevicePathLib
  

C Code für das Bootmenü

Der C Code implementiert die Menülogik, zeigt die EFI Dateien mit Hinweisen an und startet die ausgewählte Datei. Die Hauptfunktionen sind SetTextModeLowRes(), DrawMenu(), BootFile() und ResetConsoleToOriginalMode().

#include <Uefi.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiLib.h>
#include <Library/DevicePathLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Protocol/GraphicsOutput.h>
#include <Library/BaseMemoryLib.h>

#define EFI_FILE_COUNT 15
#define MENU_START_ROW 2

CHAR16 *EfiFiles[EFI_FILE_COUNT] = {
    L"\\EFI\\BOOT\\file1.efi",
    L"\\EFI\\BOOT\\file2.efi",
    L"\\EFI\\BOOT\\file3.efi",
    L"\\EFI\\BOOT\\file4.efi",
    L"\\EFI\\BOOT\\file5.efi",
    L"\\EFI\\BOOT\\file6.efi",
    L"\\EFI\\BOOT\\file7.efi",
    L"\\EFI\\BOOT\\file8.efi",
    L"\\EFI\\BOOT\\file9.efi",
    L"\\EFI\\BOOT\\file10.efi",
    L"\\EFI\\BOOT\\file11.efi",
    L"\\EFI\\BOOT\\file12.efi",
    L"\\EFI\\BOOT\\file13.efi",
    L"\\EFI\\BOOT\\file14.efi",
    L"\\EFI\\BOOT\\file15.efi"
};

CHAR16 *EfiHints[EFI_FILE_COUNT] = {
    L"Load - Color Textoutput Demo",
    L"Load - Graphics Demo",
    L"Load - Snake Game",
    L"Load - 2D Sprite & Tilemap Demo",
    L"Load - Text File",
    L"Load - Text File with Markups",
    L"Load - BMP",
    L"Load - BMP Slideshow",
    L"Load - Font Textoutput",
    L"Load - Save Text File",
    L"Load - Mandelbrot/Julia Fraktal",
    L"Load - Pong Game",
    L"Load - Tron Game",
    L"Load - UEFI Shell",
    L"Load - UEFI IPXE"
};

UINTN SelectItem = 0;

EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop = NULL;
UINT32 *FrameBuffer = NULL;
UINTN Width = 0, Height = 0;

VOID SetTextModeLowRes(VOID);
VOID ResetConsoleToOriginalMode(VOID);
VOID DrawMenu(VOID);
EFI_STATUS BootFile(EFI_HANDLE, UINTN);
VOID ClearFrameBuffer(VOID);

VOID SetTextModeLowRes(VOID) {
    gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid, NULL, (VOID**)&Gop);
}

VOID ClearFrameBuffer(VOID) {
    EFI_STATUS Status;

    if (Gop == NULL) {
        Status = gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid, NULL, (VOID**)&Gop);
        if (EFI_ERROR(Status)) return;
    }

    FrameBuffer = (UINT32*)Gop->Mode->FrameBufferBase;
    Width = Gop->Mode->Info->HorizontalResolution;
    Height = Gop->Mode->Info->VerticalResolution;

    SetMem(FrameBuffer, Width * Height * sizeof(UINT32), 0x00);
}

VOID DrawMenu(VOID) {
    gST->ConOut->SetCursorPosition(gST->ConOut, 0, 0);
    gST->ConOut->SetAttribute(gST->ConOut, EFI_LIGHTGREEN | EFI_BACKGROUND_BLACK);
    Print(L"<---------------- EFI Boot Menu ---------------->\n\n");

    for (UINTN i = 0; i < EFI_FILE_COUNT; i++) {
        gST->ConOut->SetCursorPosition(gST->ConOut, 0, MENU_START_ROW + i);

        if (i == SelectItem)
            gST->ConOut->SetAttribute(gST->ConOut, EFI_WHITE | EFI_BACKGROUND_BLUE);
        else
            gST->ConOut->SetAttribute(gST->ConOut, EFI_LIGHTGRAY | EFI_BACKGROUND_BLACK);

        Print(L"%-30s  %-40s", EfiFiles[i], EfiHints[i]);
    }
}

EFI_STATUS BootFile(EFI_HANDLE CurrentImageHandle, UINTN Index) {
    EFI_STATUS Status;
    EFI_HANDLE ImageHandle = NULL;
    EFI_DEVICE_PATH_PROTOCOL *DevicePath = NULL;
    EFI_HANDLE *Handles = NULL;
    UINTN HandleCount = 0;

    Status = gBS->LocateHandleBuffer(
        ByProtocol,
        &gEfiSimpleFileSystemProtocolGuid,
        NULL,
        &HandleCount,
        &Handles
    );
    if (EFI_ERROR(Status) || HandleCount == 0) {
        return EFI_NOT_FOUND;
    }

    DevicePath = FileDevicePath(Handles[0], EfiFiles[Index]);
    if (!DevicePath) {
        return EFI_NOT_FOUND;
    }

    Status = gBS->LoadImage(FALSE, CurrentImageHandle, DevicePath, NULL, 0, &ImageHandle);
    if (EFI_ERROR(Status)) {
        return Status;
    }

    Status = gBS->StartImage(ImageHandle, NULL, NULL);
    if (EFI_ERROR(Status)) {
        return Status;
    }

    if (gST->ConOut->Mode != NULL) {
        Status = gST->ConOut->SetMode(gST->ConOut, 3);
        if (EFI_ERROR(Status)) {
            Print(L"Fehler beim Setzen des Textmodus.\n");
            return Status;
        }
    }

    if (Gop != NULL) {
        Status = Gop->SetMode(Gop, 0);
        if (EFI_ERROR(Status)) {
            Print(L"Fehler beim Zurücksetzen des Grafikmodus auf Textmodus.\n");
            return Status;
        }

        SetMem((VOID*)Gop->Mode->FrameBufferBase, 
               Gop->Mode->Info->HorizontalResolution * Gop->Mode->Info->VerticalResolution * sizeof(UINT32), 
               0);
    }

    return EFI_SUCCESS;
}

EFI_STATUS EFIAPI BootManagerMenuEntry(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) {
    EFI_STATUS Status;
    EFI_INPUT_KEY Key;
    UINTN Index;
    BOOLEAN Exit = FALSE;

    SetTextModeLowRes();
    DrawMenu();

    while (!Exit) {
        gBS->WaitForEvent(1, &gST->ConIn->WaitForKey, &Index);
        Status = gST->ConIn->ReadKeyStroke(gST->ConIn, &Key);
        if (EFI_ERROR(Status)) continue;

        if (Key.UnicodeChar == CHAR_CARRIAGE_RETURN) {
            gST->ConOut->SetAttribute(gST->ConOut, EFI_LIGHTGRAY | EFI_BACKGROUND_BLACK);
            ClearFrameBuffer();
            gST->ConOut->SetCursorPosition(gST->ConOut, 0, 0);

            BootFile(ImageHandle, SelectItem);
            DrawMenu();
        } else if (Key.UnicodeChar == CHAR_NULL) {
            switch (Key.ScanCode) {
                case SCAN_UP:
                    SelectItem = (SelectItem == 0) ? EFI_FILE_COUNT - 1 : SelectItem - 1;
                    DrawMenu();
                    break;
                case SCAN_DOWN:
                    SelectItem = (SelectItem + 1) % EFI_FILE_COUNT;
                    DrawMenu();
                    break;
                case SCAN_ESC:
                    Exit = TRUE;
                    break;
            }
        }
    }

    ResetConsoleToOriginalMode();
    return EFI_SUCCESS;
}

VOID ResetConsoleToOriginalMode(VOID) {
    EFI_STATUS Status;

    if (gST->ConOut->Mode != NULL) {
        Status = gST->ConOut->SetMode(gST->ConOut, 3);
        if (EFI_ERROR(Status)) {
            Print(L"Fehler beim Setzen des Textmodus.\n");
        }
    }
	
    if (Gop != NULL) {
        Status = Gop->SetMode(Gop, 0);
        if (EFI_ERROR(Status)) {
            Print(L"Fehler beim Zurücksetzen des Grafikmodus.\n");
        } else {
            SetMem(
                (VOID*)Gop->Mode->FrameBufferBase,
                Gop->Mode->Info->HorizontalResolution *
                Gop->Mode->Info->VerticalResolution *
                sizeof(UINT32),
                0
            );
        }
    }

    gST->ConOut->SetAttribute(gST->ConOut, EFI_LIGHTGRAY | EFI_BACKGROUND_BLACK);
    gST->ConOut->ClearScreen(gST->ConOut);
}
⬆ Zurück nach oben

Zusätzliches Beispiel 6 – Textdatei lesen

In diesem Beispiel wird eine Textdatei eingelesen und ihr Inhalt auf dem Bildschirm ausgegeben.

INF Datei für das Projekt


[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = MyOwnHelloWorld
  FILE_GUID                      = 6987936E-ED34-44db-AE97-1FA5E4ED2117
  MODULE_TYPE                    = UEFI_APPLICATION
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = UefiMain

[Sources]
  HelloWorld.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  UefiApplicationEntryPoint
  UefiLib
  UefiBootServicesTableLib
  BaseLib
  BaseMemoryLib
  UefiBootManagerLib
  HiiLib
  MemoryAllocationLib
  DevicePathLib
  

Beispieldatei: \EFI\BOOT\text1.txt

Die folgende Beispieldatei demonstriert die verfügbaren Markups. Sie zeigt Textfarben, Hintergrundfarben, Pausen in der Ausgabe sowie die #rk Funktion zum Warten auf einen Tastendruck.


Willkommen zum UEFI Testprogramm!
Dieses Programm liest eine Textdatei und zeigt sie auf dem Bildschirm an.

Viel Spass beim Testen!

C Code der Beispielanwendung

Der C Code öffnet das Dateisystem, liest die Datei \EFI\BOOT\text1.txt ein und gibt ihn direkt auf dem Bildschirm aus..

#include <Uefi.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiLib.h>
#include <Library/DevicePathLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Protocol/GraphicsOutput.h>
#include <Library/BaseMemoryLib.h>
#include <Protocol/SimpleFileSystem.h>
#include <Guid/FileInfo.h>

#define WAIT_MICROSECONDS 10000000

VOID ReportErrorAndWait(CHAR16 *Message) {
    Print(L"%s\n", Message);
    gBS->Stall(WAIT_MICROSECONDS);
}

EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
{
    EFI_STATUS Status;
    EFI_HANDLE *Handles = NULL;
    UINTN HandleCount = 0;
    EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFs = NULL;
    EFI_FILE_PROTOCOL *Root = NULL;
    EFI_FILE_PROTOCOL *File = NULL;

    CHAR8  *AsciiBuffer = NULL;
    CHAR16 *UnicodeBuffer = NULL;
    EFI_FILE_INFO *FileInfo = NULL;
    UINTN InfoSize = 0;
    UINTN BufferSize = 0;

    Status = gBS->LocateHandleBuffer(ByProtocol, &gEfiSimpleFileSystemProtocolGuid, NULL, &HandleCount, &Handles);
    if (EFI_ERROR(Status) || HandleCount == 0) {
        ReportErrorAndWait(L"Kein SimpleFS-Handle gefunden");
        return EFI_NOT_FOUND;
    }


    for (UINTN i = 0; i < HandleCount; i++) {
        Status = gBS->HandleProtocol(Handles[i], &gEfiSimpleFileSystemProtocolGuid, (VOID**)&SimpleFs);
        if (!EFI_ERROR(Status) && SimpleFs != NULL) {
            break;
        }
    }
    if (SimpleFs == NULL) {
        ReportErrorAndWait(L"Kein SimpleFS-Handle konnte geöffnet werden");
        Status = EFI_NOT_FOUND;
        goto cleanup;
    }

    Status = SimpleFs->OpenVolume(SimpleFs, &Root);
    if (EFI_ERROR(Status)) {
        ReportErrorAndWait(L"OpenVolume fehlgeschlagen");
        goto cleanup;
    }

    Status = Root->Open(Root, &File, L"\\EFI\\BOOT\\text1.txt", EFI_FILE_MODE_READ, 0);
    if (EFI_ERROR(Status)) {
        ReportErrorAndWait(L"Datei text.txt nicht gefunden");
        goto cleanup;
    }

    Status = File->GetInfo(File, &gEfiFileInfoGuid, &InfoSize, NULL);
    if (Status == EFI_BUFFER_TOO_SMALL) {
        FileInfo = AllocateZeroPool(InfoSize);
        if (!FileInfo) {
            ReportErrorAndWait(L"Speicher konnte nicht zugewiesen werden");
            Status = EFI_OUT_OF_RESOURCES;
            goto cleanup;
        }
        Status = File->GetInfo(File, &gEfiFileInfoGuid, &InfoSize, FileInfo);
    }
    if (EFI_ERROR(Status)) {
        ReportErrorAndWait(L"Fehler beim Lesen der Dateiinfo");
        goto cleanup;
    }

    BufferSize = FileInfo->FileSize;

    AsciiBuffer = AllocateZeroPool(BufferSize + 1);
    if (!AsciiBuffer) {
        ReportErrorAndWait(L"Speicher konnte nicht zugewiesen werden");
        Status = EFI_OUT_OF_RESOURCES;
        goto cleanup;
    }

    Status = File->Read(File, &BufferSize, AsciiBuffer);
    if (EFI_ERROR(Status)) {
        ReportErrorAndWait(L"Fehler beim Lesen der Datei");
        goto cleanup;
    }

    UnicodeBuffer = AllocateZeroPool(BufferSize * sizeof(CHAR16) + sizeof(CHAR16));
    if (!UnicodeBuffer) {
        ReportErrorAndWait(L"Speicher konnte nicht zugewiesen werden");
        Status = EFI_OUT_OF_RESOURCES;
        goto cleanup;
    }

    for (UINTN i = 0; i < BufferSize; i++) {
        UnicodeBuffer[i] = (CHAR16)AsciiBuffer[i];
    }
    UnicodeBuffer[BufferSize] = L'\0';

    gST->ConOut->ClearScreen(gST->ConOut);
    Print(L"%s\n", UnicodeBuffer);

    gBS->Stall(WAIT_MICROSECONDS);

cleanup:
    if (File)       File->Close(File);
    if (AsciiBuffer) FreePool(AsciiBuffer);
    if (UnicodeBuffer) FreePool(UnicodeBuffer);
    if (FileInfo)   FreePool(FileInfo);
    if (Handles)    FreePool(Handles);

    return Status;
}
⬆ Zurück nach oben

Zusätzliches Beispiel 7 – Textdatei lesen und mit Markups anzeigen

In diesem Beispiel wird eine Textdatei eingelesen und ihr Inhalt auf dem Bildschirm ausgegeben. Der Text kann dabei mit einfachen Markierungen (Markup) versehen werden, um Farben zu ändern, Pausen einzubauen oder die Ausgabe anzuhalten, bis eine Taste gedrückt wird.

⚠️ Hinweis: Die Ausgabe erfolgt im Textmodus der Konsole. Während der Text angezeigt wird, können Farben und Hintergrundfarben umgeschaltet, kurze Wartezeiten eingefügt oder Tastendrücke abgefragt werden.

INF Datei für das Projekt


[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = MyOwnHelloWorld
  FILE_GUID                      = 6987936E-ED34-44db-AE97-1FA5E4ED2117
  MODULE_TYPE                    = UEFI_APPLICATION
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = UefiMain

[Sources]
  HelloWorld.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  UefiApplicationEntryPoint
  UefiLib
  UefiBootServicesTableLib
  BaseLib
  BaseMemoryLib
  UefiBootManagerLib
  HiiLib
  MemoryAllocationLib
  DevicePathLib
  

Beispieldatei: \EFI\BOOT\text.txt

Die folgende Beispieldatei demonstriert die verfügbaren Markups. Sie zeigt Textfarben, Hintergrundfarben, Pausen in der Ausgabe sowie die #rk Funktion zum Warten auf einen Tastendruck.


#tc1Willkommen zum UEFI Text Demo!#p2

- Textfarben Beispiele (auf Standard-Hintergrund)
#tc0Schwarz#p1
#tc1Weiss#p1
#tc2Rot#p1
#tc3Gruen#p1

#tc1Zurueck zu Weiss#p1

- Hintergrundfarben Beispiele (mit Standard-Textfarbe)
#bc0Standard#p1
#bc1Blau#p1
#bc2Rot#p1
#bc3Gruen#p1

#tc1#bc0- Kombinierte Text- und Hintergrundfarben
#tc2#bc1Rot auf Blau#p1
#tc3#bc2Gruen auf Rot#p1
#tc1#bc0Weiss auf Standard#p2

- Zeilenweise Ausgabe mit Pausen
Zeile 1#p1
Zeile 2#p1
Zeile 3#p2

- Test Read Key
Druecke eine Taste um weiterzugehen...#rk
Text nach Tastendruck erscheint!#p2

- Animation mit Pausen
1#p1
2#p1
3#p1
4#p1
5#p1
6#p6
7#p7
8#p8
9#p9

Druecke eine Taste um zu beenden#rk

C Code der Beispielanwendung

Der C Code öffnet das Dateisystem, liest die Datei \EFI\BOOT\text.txt ein, konvertiert sie von UTF-8 nach Unicode und gibt den Inhalt auf dem Bildschirm aus. Markups wie #tc (Textfarbe), #bc (Hintergrundfarbe), #p (Pausen) und #rk (Taste abwarten) werden interpretiert und direkt während der Ausgabe angewendet.

#include <Uefi.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiLib.h>
#include <Library/DevicePathLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Protocol/GraphicsOutput.h>
#include <Library/BaseMemoryLib.h>
#include <Protocol/SimpleFileSystem.h>
#include <Guid/FileInfo.h>

#define COLOR_DEFAULT EFI_LIGHTGRAY
#define BCOLOR_DEFAULT EFI_BACKGROUND_BLACK

UINTN Utf8ToChar16(CHAR8 *Src, CHAR16 *Dst, UINTN MaxDstChars) {
    UINTN i = 0;
    UINTN j = 0;
    while (Src[i] && j < MaxDstChars - 1) {
        if ((Src[i] & 0x80) == 0) {
            // ASCII
            Dst[j++] = (CHAR16)Src[i++];
        } else if ((Src[i] & 0xE0) == 0xC0) {
            // 2-Byte UTF-8
            Dst[j++] = (CHAR16)(((Src[i] & 0x1F) << 6) | (Src[i + 1] & 0x3F));
            i += 2;
        } else if ((Src[i] & 0xF0) == 0xE0) {
            // 3-Byte UTF-8
            Dst[j++] = (CHAR16)(((Src[i] & 0x0F) << 12) | ((Src[i + 1] & 0x3F) << 6) | (Src[i + 2] & 0x3F));
            i += 3;
        } else {
            i++;
        }
    }
    Dst[j] = L'\0';
    return j;
}

VOID ProcessTextWithMarkup(CHAR16 *Text)
{
    CHAR16 *p = Text;
    EFI_INPUT_KEY Key;
    UINTN EventIndex;

    // Standardfarben
    UINT8 CurrTextColor = EFI_LIGHTGRAY;
    UINT8 CurrBackColor = EFI_BACKGROUND_BLACK;

    while (*p) {
        if (*p == L'#') {
            // Textfarben #tc0..#tc3
            if (StrnCmp(p, L"#tc0", 4) == 0) { CurrTextColor = EFI_BLACK; p += 4; }
            else if (StrnCmp(p, L"#tc1", 4) == 0) { CurrTextColor = EFI_WHITE; p += 4; }
            else if (StrnCmp(p, L"#tc2", 4) == 0) { CurrTextColor = EFI_RED; p += 4; }
            else if (StrnCmp(p, L"#tc3", 4) == 0) { CurrTextColor = EFI_GREEN; p += 4; }
            // Hintergrundfarben #bc0..#bc3
            else if (StrnCmp(p, L"#bc0", 4) == 0) { CurrBackColor = EFI_BACKGROUND_BLACK; p += 4; }
            else if (StrnCmp(p, L"#bc1", 4) == 0) { CurrBackColor = EFI_BACKGROUND_BLUE; p += 4; }
            else if (StrnCmp(p, L"#bc2", 4) == 0) { CurrBackColor = EFI_BACKGROUND_RED; p += 4; }
            else if (StrnCmp(p, L"#bc3", 4) == 0) { CurrBackColor = EFI_BACKGROUND_GREEN; p += 4; }
            // Pausen #p1..#p9
            else if (StrnCmp(p, L"#p1", 3) == 0) { gBS->Stall(500000); p += 3; }
            else if (StrnCmp(p, L"#p2", 3) == 0) { gBS->Stall(1000000); p += 3; }
            else if (StrnCmp(p, L"#p3", 3) == 0) { gBS->Stall(1500000); p += 3; }
            else if (StrnCmp(p, L"#p4", 3) == 0) { gBS->Stall(2000000); p += 3; }
            else if (StrnCmp(p, L"#p5", 3) == 0) { gBS->Stall(2500000); p += 3; }
            else if (StrnCmp(p, L"#p6", 3) == 0) { gBS->Stall(3000000); p += 3; }
            else if (StrnCmp(p, L"#p7", 3) == 0) { gBS->Stall(3500000); p += 3; }
            else if (StrnCmp(p, L"#p8", 3) == 0) { gBS->Stall(4000000); p += 3; }
            else if (StrnCmp(p, L"#p9", 3) == 0) { gBS->Stall(4500000); p += 3; }
            // Read Key
            else if (StrnCmp(p, L"#rk", 3) == 0) {
                gBS->WaitForEvent(1, &gST->ConIn->WaitForKey, &EventIndex);
                gST->ConIn->ReadKeyStroke(gST->ConIn, &Key);
                p += 3;
            }

            else { p++; }

            gST->ConOut->SetAttribute(gST->ConOut, CurrTextColor | CurrBackColor);
        } else {
            Print(L"%c", *p++);
        }
    }
}

EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
{
    EFI_STATUS Status = EFI_SUCCESS;
    EFI_HANDLE *Handles = NULL;
    UINTN HandleCount = 0;

    EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFs = NULL;
    EFI_FILE_PROTOCOL *Root = NULL;
    EFI_FILE_PROTOCOL *File = NULL;

    EFI_FILE_INFO *FileInfo = NULL;
    UINTN InfoSize = 0;

    CHAR8 *AsciiBuffer = NULL;
    CHAR16 *UnicodeBuffer = NULL;

    // Simple File System Handles suchen
    Status = gBS->LocateHandleBuffer(
        ByProtocol,
        &gEfiSimpleFileSystemProtocolGuid,
        NULL,
        &HandleCount,
        &Handles
    );

    if (EFI_ERROR(Status) || HandleCount == 0) {
        Print(L"Kein SimpleFS Handle gefunden\n");
        gBS->Stall(3000000);
        return EFI_NOT_FOUND;
    }

    // Ersten funktionierenden SimpleFS öffnen
    for (UINTN i = 0; i < HandleCount; i++) {

        Status = gBS->HandleProtocol(
            Handles[i],
            &gEfiSimpleFileSystemProtocolGuid,
            (VOID**)&SimpleFs
        );

        if (!EFI_ERROR(Status) && SimpleFs != NULL)
            break;
    }

    if (SimpleFs == NULL) {
        Print(L"SimpleFS konnte nicht geöffnet werden\n");
        gBS->Stall(3000000);
        return EFI_NOT_FOUND;
    }

    // Root öffnen
    Status = SimpleFs->OpenVolume(SimpleFs, &Root);
    if (EFI_ERROR(Status)) {
        Print(L"OpenVolume fehlgeschlagen\n");
        gBS->Stall(3000000);
        return Status;
    }

    // Datei öffnen
    Status = Root->Open(
        Root,
        &File,
        L"\\EFI\\BOOT\\text.txt",
        EFI_FILE_MODE_READ,
        0
    );

    if (EFI_ERROR(Status)) {
        Print(L"text.txt nicht gefunden\n");
        gBS->Stall(3000000);
        return Status;
    }

    // 1. Größe ermitteln
    Status = File->GetInfo(File, &gEfiFileInfoGuid, &InfoSize, NULL);

    if (Status != EFI_BUFFER_TOO_SMALL) {
        Print(L"GetInfo (Größe) fehlgeschlagen\n");
        return Status;
    }

    // 2. Speicher allokieren
    Status = gBS->AllocatePool(
        EfiBootServicesData,
        InfoSize,
        (VOID**)&FileInfo
    );

    if (EFI_ERROR(Status)) {
        Print(L"AllocatePool FileInfo fehlgeschlagen\n");
        return Status;
    }

    gBS->SetMem(FileInfo, InfoSize, 0);

    // 3. richtige GetInfo
    Status = File->GetInfo(File, &gEfiFileInfoGuid, &InfoSize, FileInfo);

    if (EFI_ERROR(Status)) {
        Print(L"GetInfo (Inhalt) fehlgeschlagen\n");
        gBS->FreePool(FileInfo);
        return Status;
    }

    // Datei lesen
    UINTN BufferSize = (UINTN)FileInfo->FileSize;

    Status = gBS->AllocatePool(
        EfiBootServicesData,
        BufferSize + 1,
        (VOID**)&AsciiBuffer
    );

    if (EFI_ERROR(Status)) {
        Print(L"AllocatePool Ascii fehlgeschlagen\n");
        return Status;
    }

    gBS->SetMem(AsciiBuffer, BufferSize + 1, 0);

    Status = File->Read(File, &BufferSize, AsciiBuffer);

    if (EFI_ERROR(Status)) {
        Print(L"Datei konnte nicht gelesen werden\n");
        goto cleanup;
    }

    // UTF-8 -> Unicode Buffer
    Status = gBS->AllocatePool(
        EfiBootServicesData,
        BufferSize * 2 + 2,
        (VOID**)&UnicodeBuffer
    );

    if (EFI_ERROR(Status)) {
        Print(L"AllocatePool Unicode fehlgeschlagen\n");
        goto cleanup;
    }

    gBS->SetMem(UnicodeBuffer, BufferSize * 2 + 2, 0);

    Utf8ToChar16(AsciiBuffer, UnicodeBuffer, BufferSize * 2);

    // Bildschirm löschen + Text rendern
    gST->ConOut->ClearScreen(gST->ConOut);

    ProcessTextWithMarkup(UnicodeBuffer);

    gBS->Stall(3000000);

cleanup:

    if (File) File->Close(File);
    if (Root) Root->Close(Root);

    if (AsciiBuffer) gBS->FreePool(AsciiBuffer);
    if (UnicodeBuffer) gBS->FreePool(UnicodeBuffer);
    if (FileInfo) gBS->FreePool(FileInfo);
    if (Handles) gBS->FreePool(Handles);

    return EFI_SUCCESS;
}
⬆ Zurück nach oben

Codebeispiel 8 – Eine Bilddatei (BMP) lesen und auf dem Bildschirm anzeigen

In diesem Beispiel wird eine BMP Bilddatei eingelesen und ihr Inhalt auf dem Bildschirm ausgegeben. Das Bild wird dabei über den Graphics Output Protocol (GOP) auf dem Bildschirm angezeigt. Die BMP Datei wird im UEFI Betriebssystem von einem bestimmten Dateisystempfad geladen und dann auf dem Bildschirm dargestellt.

⚠️ Hinweis: Dieses Beispiel geht davon aus, dass das System ein UEFI fähiges Gerät ist und die notwendigen Protokolle und Bibliotheken zur Verfügung stehen.

INF Datei für das Projekt


[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = MyOwnHelloWorld
  FILE_GUID                      = 6987936E-ED34-44db-AE97-1FA5E4ED2117
  MODULE_TYPE                    = UEFI_APPLICATION
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = UefiMain

[Sources]
  HelloWorld.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  UefiApplicationEntryPoint
  UefiLib
  UefiBootServicesTableLib
  BaseLib
  BaseMemoryLib
  UefiBootManagerLib
  HiiLib
  MemoryAllocationLib
  DevicePathLib
  

UefiMain C Code

<#include <Uefi.h>
#include <Library/UefiLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/UefiApplicationEntryPoint.h>
#include <Protocol/SimpleFileSystem.h>
#include <Protocol/GraphicsOutput.h>
#include <Guid/FileInfo.h>

#pragma pack(push, 1)
typedef struct {
    UINT16 Signature;        // BMP-Signatur, sollte 0x4D42 (ASCII "BM") sein
    UINT32 FileSize;         // Größe der BMP Datei
    UINT32 Reserved;         // Reserviert (wird nicht verwendet)
    UINT32 DataOffset;       // Offset zu den Bilddaten
} BMP_FILE_HEADER;

typedef struct {
    UINT32 Size;             // Größe des Info Headers
    INT32  Width;            // Bildbreite
    INT32  Height;           // Bildhöhe
    UINT16 Planes;           // Anzahl der Farbebenen (immer 1 für BMP)
    UINT16 BitCount;         // Bits pro Pixel (z.B. 24 für RGB)
    UINT32 Compression;      // Kompressionstyp (0 = keine Kompression)
    UINT32 ImageSize;        // Bildgröße
    INT32  XPelsPerMeter;    // X Auflösung (nicht wichtig)
    INT32  YPelsPerMeter;    // Y Auflösung (nicht wichtig)
    UINT32 ClrUsed;          // Anzahl der verwendeten Farben (meist 0)
    UINT32 ClrImportant;     // Anzahl der wichtigen Farben (meist 0)
} BMP_INFO_HEADER;
#pragma pack(pop)

EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
{
    EFI_STATUS Status;

    EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop;
    EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFs;
    EFI_FILE_PROTOCOL *Root;
    EFI_FILE_PROTOCOL *BmpFile;

    BMP_FILE_HEADER FileHeader;
    BMP_INFO_HEADER InfoHeader;

    UINTN Size;
    UINT8 *PixelData;

    // GOP holen (Graphics Output Protocol)
    Status = gBS->LocateProtocol(
        &gEfiGraphicsOutputProtocolGuid,
        NULL,
        (VOID**)&Gop
    );

    if (EFI_ERROR(Status)) {
        Print(L"GOP nicht gefunden\n");
        return Status;
    }

    // Dateisystem öffnen
    Status = gBS->LocateProtocol(
        &gEfiSimpleFileSystemProtocolGuid,
        NULL,
        (VOID**)&SimpleFs
    );

    if (EFI_ERROR(Status)) {
        Print(L"Filesystem nicht gefunden: %r\n", Status);
        gBS->Stall(3000000);
        return Status;
    }

    Status = SimpleFs->OpenVolume(SimpleFs, &Root);
    if (EFI_ERROR(Status)) {
        Print(L"Root konnte nicht geöffnet werden: %r\n", Status);
        gBS->Stall(3000000);
        return Status;
    }

    // BMP öffnen
    Status = Root->Open(
        Root,
        &BmpFile,
        L"\\EFI\\BOOT\\bild.bmp",
        EFI_FILE_MODE_READ,
        0
    );

    if (EFI_ERROR(Status)) {
        Print(L"bild.bmp nicht gefunden: %r\n", Status);
        gBS->Stall(3000000); 
        return Status;
    }

    // Header lesen
    Size = sizeof(FileHeader);
    Status = BmpFile->Read(BmpFile, &Size, &FileHeader);
    if (EFI_ERROR(Status)) {
        Print(L"Fehler beim Lesen des File Headers: %r\n", Status);
        gBS->Stall(3000000);
        return Status;
    }

    Size = sizeof(InfoHeader);
    Status = BmpFile->Read(BmpFile, &Size, &InfoHeader);
    if (EFI_ERROR(Status)) {
        Print(L"Fehler beim Lesen des Info Headers: %r\n", Status);
        gBS->Stall(3000000);
        return Status;
    }

    // BMP Datei validieren
    if (FileHeader.Signature != 0x4D42) {
        Print(L"Keine BMP-Datei\n");
        gBS->Stall(3000000);
        return EFI_UNSUPPORTED;
    }

    if (InfoHeader.BitCount != 24 || InfoHeader.Compression != 0) {
        Print(L"Nur 24 Bit unkomprimierte BMPs werden unterstützt\n");
        gBS->Stall(3000000);
        return EFI_UNSUPPORTED;
    }

    // Padding berücksichtigen
    UINTN RowSize = (InfoHeader.Width * 3 + 3) & ~3;
    UINTN ImageSize = RowSize * ABS(InfoHeader.Height);

    PixelData = AllocateZeroPool(ImageSize);
    if (PixelData == NULL) {
        Print(L"Fehler bei der Speicherzuweisung für das Bild\n");
        gBS->Stall(3000000);
        return EFI_OUT_OF_RESOURCES;
    }

    // Bilddaten laden
    Status = BmpFile->SetPosition(BmpFile, FileHeader.DataOffset);
    if (EFI_ERROR(Status)) {
        Print(L"Fehler beim Setzen der Position: %r\n", Status);
        FreePool(PixelData);
        gBS->Stall(3000000);
        return Status;
    }

    Size = ImageSize;
    Status = BmpFile->Read(BmpFile, &Size, PixelData);
    if (EFI_ERROR(Status)) {
        Print(L"Fehler beim Laden der Bilddaten: %r\n", Status);
        FreePool(PixelData);
        gBS->Stall(3000000);
        return Status;
    }

    // Framebuffer erhalten
    UINT32 *FrameBuffer = (UINT32*)Gop->Mode->FrameBufferBase;
    UINTN Pitch = Gop->Mode->Info->PixelsPerScanLine;

    BOOLEAN BottomUp = (InfoHeader.Height > 0);
    INTN Height = ABS(InfoHeader.Height);

    // Bilddaten auf dem Bildschirm darstellen
    for (INTN y = 0; y < Height; y++) {
        UINTN SrcY = BottomUp ? (Height - 1 - y) : y;
        UINT8 *Row = PixelData + SrcY * RowSize;

        for (INTN x = 0; x < InfoHeader.Width; x++) {
            UINT8 B = Row[x * 3 + 0];
            UINT8 G = Row[x * 3 + 1];
            UINT8 R = Row[x * 3 + 2];

            FrameBuffer[y * Pitch + x] = (R << 16) | (G << 8) | (B);
        }
    }

    gBS->Stall(5000000);

    Print(L"Bitte eine Taste druecken\n");

    EFI_INPUT_KEY Key;
    UINTN EventIndex;
    gBS->WaitForEvent(1, &gST->ConIn->WaitForKey, &EventIndex);
    gST->ConIn->ReadKeyStroke(gST->ConIn, &Key);

    FreePool(PixelData);

    return EFI_SUCCESS;
}
⬆ Zurück nach oben
  • Codebeispiel 9: Eine Slideshow mit 5 BMP Bilddateien
  • Codebeispiel 9 – Eine Slideshow mit 5 BMP Bilddateien

    In diesem Beispiel wird eine Diashow aus fünf BMP Bilddateien realisiert. Die Bilder werden vom Dateisystem geladen und über das Graphics Output Protocol (GOP) auf dem Bildschirm angezeigt. Die Diashow läuft in einer Endlosschleife und kann durch Drücken der ESC Taste beendet werden.

    ⚠️ Hinweis: Dieses Beispiel setzt voraus, dass das System UEFI fähig ist und die notwendigen Protokolle und Bibliotheken verfügbar sind.

    INF Datei für das Projekt

    
    [Defines]
      INF_VERSION                    = 0x00010005
      BASE_NAME                      = MyOwnHelloWorld
      FILE_GUID                      = 6987936E-ED34-44db-AE97-1FA5E4ED2117
      MODULE_TYPE                    = UEFI_APPLICATION
      VERSION_STRING                 = 1.0
      ENTRY_POINT                    = UefiMain
    
    [Sources]
      HelloWorld.c
    
    [Packages]
      MdePkg/MdePkg.dec
    
    [LibraryClasses]
      UefiApplicationEntryPoint
      UefiLib
      UefiBootServicesTableLib
      BaseLib
      BaseMemoryLib
      UefiBootManagerLib
      HiiLib
      MemoryAllocationLib
      DevicePathLib
      

    C Code: UefiMain und BMP Laden

    
    #include <Uefi.h>
    #include <Library/UefiLib.h>
    #include <Library/UefiBootServicesTableLib.h>
    #include <Library/MemoryAllocationLib.h>
    #include <Library/UefiApplicationEntryPoint.h>
    #include <Protocol/SimpleFileSystem.h>
    #include <Protocol/GraphicsOutput.h>
    #include <Guid/FileInfo.h>
    
    #pragma pack(push, 1)
    typedef struct {
        UINT16 Signature;
        UINT32 FileSize;
        UINT32 Reserved;
        UINT32 DataOffset;
    } BMP_FILE_HEADER;
    
    typedef struct {
        UINT32 Size;
        INT32  Width;
        INT32  Height;
        UINT16 Planes;
        UINT16 BitCount;
        UINT32 Compression;
        UINT32 ImageSize;
        INT32  XPelsPerMeter;
        INT32  YPelsPerMeter;
        UINT32 ClrUsed;
        UINT32 ClrImportant;
    } BMP_INFO_HEADER;
    #pragma pack(pop)
    
    // BMP laden und auf Bildschirm zeichnen
    EFI_STATUS LoadAndDrawBmp(EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop, EFI_FILE_PROTOCOL *Root,CHAR16 *Path)
    {
        EFI_STATUS Status;
        EFI_FILE_PROTOCOL *BmpFile;
    
        BMP_FILE_HEADER FileHeader;
        BMP_INFO_HEADER InfoHeader;
    
        UINTN Size;
        UINT8 *PixelData;
    
        // Datei öffnen
        Status = Root->Open(Root, &BmpFile, Path, EFI_FILE_MODE_READ, 0);
        if (EFI_ERROR(Status)) {
            Print(L"Bild nicht gefunden: %s\n", Path);
            return Status;
        }
    
        // Header lesen
        Size = sizeof(FileHeader);
        BmpFile->Read(BmpFile, &Size, &FileHeader);
    
        Size = sizeof(InfoHeader);
        BmpFile->Read(BmpFile, &Size, &InfoHeader);
    
        // Validieren
        if (FileHeader.Signature != 0x4D42) {
            Print(L"Keine BMP Datei\n");
            return EFI_UNSUPPORTED;
        }
    
        if (InfoHeader.BitCount != 24 || InfoHeader.Compression != 0) {
            Print(L"Nur 24 Bit BMP unkomprimiert\n");
            return EFI_UNSUPPORTED;
        }
    
        // Row-Padding
        UINTN RowSize = (InfoHeader.Width * 3 + 3) & ~3;
        UINTN ImageSize = RowSize * ABS(InfoHeader.Height);
    
        PixelData = AllocateZeroPool(ImageSize);
        if (!PixelData) return EFI_OUT_OF_RESOURCES;
    
        // Daten lesen
        BmpFile->SetPosition(BmpFile, FileHeader.DataOffset);
        Size = ImageSize;
        BmpFile->Read(BmpFile, &Size, PixelData);
    
        // Framebuffer
        UINT32 *FrameBuffer = (UINT32*)Gop->Mode->FrameBufferBase;
        UINTN Pitch = Gop->Mode->Info->PixelsPerScanLine;
    
        BOOLEAN BottomUp = (InfoHeader.Height > 0);
        INTN Height = ABS(InfoHeader.Height);
    
        // Bildschirm löschen
        for (UINTN i = 0; i < Gop->Mode->FrameBufferSize / 4; i++)
            FrameBuffer[i] = 0x000000;
    
        // Pixel kopieren
        for (INTN y = 0; y < Height; y++) {
    
            UINTN SrcY = BottomUp ? (Height - 1 - y) : y;
            UINT8 *Row = PixelData + SrcY * RowSize;
    
            for (INTN x = 0; x < InfoHeader.Width; x++) {
    
                UINT8 B = Row[x * 3 + 0];
                UINT8 G = Row[x * 3 + 1];
                UINT8 R = Row[x * 3 + 2];
    
                FrameBuffer[y * Pitch + x] =
                    (R << 16) | (G << 8) | (B);
            }
        }
    
        FreePool(PixelData);
        BmpFile->Close(BmpFile);
    
        return EFI_SUCCESS;
    }
    
    EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
    {
        EFI_STATUS Status;
    
        EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop;
        EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFs;
        EFI_FILE_PROTOCOL *Root;
    
        // GOP holen
        Status = gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid, NULL, (VOID**)&Gop);
        if (EFI_ERROR(Status)) {
            Print(L"GOP fehlt\n");
            return Status;
        }
    
        // Dateisystem
        Status = gBS->LocateProtocol(&gEfiSimpleFileSystemProtocolGuid, NULL, (VOID**)&SimpleFs);
        if (EFI_ERROR(Status)) {
            Print(L"Filesystem fehlt\n");
            return Status;
        }
    
        SimpleFs->OpenVolume(SimpleFs, &Root);
    
        // Liste der Bilder
        CHAR16 *Images[] = {
            L"\\EFI\\BOOT\\bild1.bmp",
            L"\\EFI\\BOOT\\bild2.bmp",
            L"\\EFI\\BOOT\\bild3.bmp",
            L"\\EFI\\BOOT\\bild4.bmp",
            L"\\EFI\\BOOT\\bild5.bmp"
        };
    
        UINTN Count = sizeof(Images) / sizeof(Images[0]);
    
        EFI_INPUT_KEY Key;
        UINTN EventIndex;
    
        // Endlosschleife für Diashow
        while (TRUE) {
            for (UINTN i = 0; i < Count; i++) {
    
                Print(L"Zeige Bild %d\n", i + 1);
    
                LoadAndDrawBmp(Gop, Root, Images[i]);
    
                gBS->Stall(3000000);
    
                // ESC prüfen zum Abbrechen
                if (!EFI_ERROR(gST->ConIn->ReadKeyStroke(gST->ConIn, &Key))) {
                    if (Key.ScanCode == SCAN_ESC)
                        return EFI_SUCCESS;
                }
            }
        }
    
        // Diese Zeilen werden in der Endlosschleife nicht erreicht,
        // bleiben aber aus Kompatibilitätsgründen erhalten
        Print(L"Fuer Reboot eine Taste druecken.\n");
        gBS->WaitForEvent(1, &gST->ConIn->WaitForKey, &EventIndex);
        gST->ConIn->ReadKeyStroke(gST->ConIn, &Key);
    
        return EFI_SUCCESS;
    }
    ⬆ Zurück nach oben

    Codebeispiel 10 – 16×16 Pixel Fonts darstellen

    In diesem Beispiel werden Zeichen mithilfe eines 16×16 Pixel Fonts auf dem Bildschirm ausgegeben. Jedes Zeichen besteht aus einer 16×16 Bitmap-Matrix, bei der jedes Bit festlegt, ob ein Pixel gesetzt oder gelöscht wird. Die einzelnen Fontdaten liegen im Speicher in einem Array vor und werden zeilenweise ausgewertet.

    Die Ausgabe erfolgt über das Graphics Output Protocol (GOP). Für jedes gesetzte Bit wird ein Pixel oder ein kleiner gefüllter Block direkt in den Framebuffer gezeichnet. Auf diese Weise entsteht das sichtbare Zeichen. Das Beispiel zeigt damit sehr anschaulich, wie Pixelkoordinaten, Bildschirmpuffer und Farbdarstellung unter UEFI zusammenarbeiten.

    Zusätzlich wird demonstriert, wie mehrere Zeichen nacheinander ausgegeben werden können, beispielsweise für einfache Texte, Menüs oder Statusanzeigen – ganz ohne komplexe Schriftbibliotheken. Der Font kann leicht angepasst werden, sodass eigene Zeichen, Symbole oder Sonderzeichen ergänzt werden können.

    Das Beispiel eignet sich besonders gut für alle, die verstehen möchten, wie Textdarstellung auf niedrigem Level funktioniert, also ohne Betriebssystem, GUI Framework oder TrueType Fonts. Es bildet außerdem eine gute Grundlage für eigene Konsolen, Debug Ausgaben oder grafische Benutzeroberflächen unter UEFI.

    ⚠️ Hinweis: Für dieses Beispiel wird ein UEFI System mit funktionsfähigem GOP vorausgesetzt. Je nach Firmware und Grafikhardware können Auflösung und Farbtiefe variieren.

    📥 Hinweis zum Download: Am Ende dieser Seite befindet sich im Download Bereich eine Beta Version der 16×16 Pixel Font App, die auf diesem Beispiel basiert und heruntergeladen werden kann.

    INF Datei für das Projekt

    
    [Defines]
      INF_VERSION                    = 0x00010005
      BASE_NAME                      = MyOwnHelloWorld
      FILE_GUID                      = 6987936E-ED34-44db-AE97-1FA5E4ED2117
      MODULE_TYPE                    = UEFI_APPLICATION
      VERSION_STRING                 = 1.0
      ENTRY_POINT                    = UefiMain
    
    [Sources]
      HelloWorld.c
    
    [Packages]
      MdePkg/MdePkg.dec
    
    [LibraryClasses]
      UefiApplicationEntryPoint
      UefiLib
      UefiBootServicesTableLib
      BaseLib
      BaseMemoryLib
      UefiBootManagerLib
      HiiLib
      MemoryAllocationLib
      DevicePathLib
      

    C Code: UefiMain und BMP Laden

    
    #include <Uefi.h>
    #include <Library/UefiLib.h>
    #include <Library/UefiBootServicesTableLib.h>
    #include <Protocol/GraphicsOutput.h>
    
    #define FONT_WIDTH 16
    #define FONT_HEIGHT 16
    
    EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop;
    EFI_STATUS Status;
    UINT32 *FrameBuffer;
    UINT32 Width, Height;
    
    /* Generated ASCII font for UEFI */
    /* size 16x16 */
    
    static const INT32 Fonts[96][256] = {
        // ' ' (32)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '!' (33)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '"' (34)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '#' (35)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '$' (36)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '%' (37)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '&' (38)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // ''' (39)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '(' (40)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // ')' (41)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '*' (42)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '+' (43)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // ',' (44)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '-' (45)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '.' (46)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '/' (47)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '0' (48)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '1' (49)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '2' (50)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '3' (51)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '4' (52)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '5' (53)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '6' (54)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '7' (55)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '8' (56)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '9' (57)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // ':' (58)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // ';' (59)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '<' (60)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '=' (61)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '>' (62)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '?' (63)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '@' (64)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'A' (65)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'B' (66)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'C' (67)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'D' (68)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'E' (69)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'F' (70)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'G' (71)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'H' (72)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'I' (73)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'J' (74)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'K' (75)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'L' (76)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'M' (77)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'N' (78)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'O' (79)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'P' (80)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'Q' (81)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'R' (82)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'S' (83)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'T' (84)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'U' (85)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'V' (86)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'W' (87)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'X' (88)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'Y' (89)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'Z' (90)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '[' (91)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '\' (92)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // ']' (93)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '^' (94)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '_' (95)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '`' (96)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'a' (97)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'b' (98)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'c' (99)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'd' (100)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'e' (101)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'f' (102)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'g' (103)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'h' (104)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'i' (105)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'j' (106)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'k' (107)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'l' (108)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'm' (109)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'n' (110)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'o' (111)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'p' (112)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'q' (113)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'r' (114)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 's' (115)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 't' (116)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'u' (117)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'v' (118)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'w' (119)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'x' (120)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'y' (121)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // 'z' (122)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '{' (123)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '|' (124)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '}' (125)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
        // '~' (126)
        {
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00000000,         0x00008000,         0x00FFFFFF,         0x00FFFFFF,         0x00FFFFFF,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
            0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000,         0x00000000, 
        },
    };
    
    VOID DrawCharacter(UINT32 *Buffer, INT32 Character, UINT32 X, UINT32 Y, UINT32 HorizontalResolution)
    {
        for (UINT32 y = 0; y < FONT_HEIGHT; y++) {
            for (UINT32 x = 0; x < FONT_WIDTH; x++) {
                INT32 Color = Fonts[Character - 32][y * FONT_WIDTH + x];
                if (Color != 0) {
                    UINT32 PixelPos = (Y + y) * HorizontalResolution + (X + x);
                    Buffer[PixelPos] = Color; 
                }
            }
        }
    }
    
    VOID DrawText(UINT32 *Buffer, CHAR16 *Text, UINT32 X, UINT32 Y, UINT32 HorizontalResolution)
    {
        UINT32 CurrentX = X;
        UINT32 CurrentY = Y;
    
        for (UINT32 i = 0; Text[i] != L'\0'; i++) {
            if (CurrentX + FONT_WIDTH > HorizontalResolution) {
                CurrentX = X;
                CurrentY += FONT_HEIGHT;
            }
    
            if (CurrentY + FONT_HEIGHT > Height) {
                Print(L"Fehler: Der Text überschreitet die Bildschirmhöhe.\n");
                break;
            }
    
            DrawCharacter(Buffer, Text[i], CurrentX, CurrentY, HorizontalResolution);
    
            CurrentX += FONT_WIDTH;
        }
    }
    
    EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
    {
        Status = gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid, NULL, (VOID**)&Gop);
        if (EFI_ERROR(Status)) {
            Print(L"Fehler beim Finden des Graphics Output Protocols.\n");
            return Status;
        }
    
        Width = Gop->Mode->Info->HorizontalResolution;
        Height = Gop->Mode->Info->VerticalResolution;
        FrameBuffer = (UINT32 *)Gop->Mode->FrameBufferBase;
    
        UINT32 X = 10;
        UINT32 Y = 10;
        CHAR16 Message1[] = L"Hello, UEFI!";
        CHAR16 Message2[] = L"Dies ist die zweite Zeile auf dem Bildschirm (0123456789).";
        CHAR16 Message3[] = L"Und hier ist die dritte Zeile.";
    
        DrawText(FrameBuffer, Message1, X, Y, Width);
        DrawText(FrameBuffer, Message2, X, Y + FONT_HEIGHT, Width);
        DrawText(FrameBuffer, Message3, X, Y + (2 * FONT_HEIGHT), Width);
    
        gBS->Stall(15000000);
    
        return EFI_SUCCESS;
    }
    ⬆ Zurück nach oben

    Codebeispiel 11 – Textdatei auf Volumen Speichern

    In diesem Beispiel wird ein Text in eine Datei auf einem UEFI Volume geschrieben und wieder ausgelesen. Es wird ein einfacher Mechanismus gezeigt, um eine Textdatei zu erstellen, den Benutzer zur Eingabe eines Textes aufzufordern und diesen in eine Datei zu speichern. Danach wird die Datei wieder geöffnet und der Inhalt auf dem Bildschirm ausgegeben.

    ⚠️ Hinweis: Für dieses Beispiel wird ein UEFI System mit funktionsfähigem Simple File System und Grafikprotokoll vorausgesetzt.

    INF Datei für das Projekt

    
    [Defines]
      INF_VERSION                    = 0x00010005
      BASE_NAME                      = MyOwnHelloWorld
      FILE_GUID                      = 6987936E-ED34-44db-AE97-1FA5E4ED2117
      MODULE_TYPE                    = UEFI_APPLICATION
      VERSION_STRING                 = 1.0
      ENTRY_POINT                    = UefiMain
    
    [Sources]
      HelloWorld.c
    
    [Packages]
      MdePkg/MdePkg.dec
    
    [LibraryClasses]
      UefiApplicationEntryPoint
      UefiLib
      UefiBootServicesTableLib
      BaseLib
      BaseMemoryLib
      UefiBootManagerLib
      HiiLib
      MemoryAllocationLib
      DevicePathLib
    

    C Code: UefiMain und BMP Laden

    #include <Uefi.h>
    #include <Library/UefiLib.h>
    #include <Library/UefiBootServicesTableLib.h>
    #include <Protocol/GraphicsOutput.h>   
    #include <Library/MemoryAllocationLib.h>
    #include <Protocol/SimpleFileSystem.h>
    #include <Guid/FileInfo.h>
    #include <Library/BaseMemoryLib.h>
    
    #define MAX_INPUT_SIZE 1024
    #define WAIT_MICROSECONDS 8000000
    
    volatile UINT32 *FrameBuffer;
    UINTN Width, Height;
    
    VOID ReportErrorAndWait(CHAR16 *Message) {
        gST->ConOut->SetAttribute(gST->ConOut, EFI_TEXT_ATTR(EFI_RED, EFI_BLACK));
        
        Print(L"%s\n", Message);
    
        gST->ConOut->SetAttribute(gST->ConOut, EFI_TEXT_ATTR(EFI_WHITE, EFI_BLACK));
        
        gBS->Stall(WAIT_MICROSECONDS);
    }
    
    VOID SetTextColor(UINTN Color) {
        gST->ConOut->SetAttribute(gST->ConOut, Color);
    }
    
    STATIC VOID ClearFrameBuffer() {
        UINTN NumPixels = Width * Height;
        for (UINTN i = 0; i < NumPixels; i++) {
            FrameBuffer[i] = 0x00000000;
        }
    }
    
    EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
    {
        gST = SystemTable;
    	   
        EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop = NULL;
        EFI_STATUS Status;
        EFI_HANDLE *Handles = NULL;
        UINTN HandleCount = 0;
        EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFs = NULL;
        EFI_FILE_PROTOCOL *Root = NULL;
        EFI_FILE_PROTOCOL *File = NULL;
    
        CHAR16 InputBuffer[MAX_INPUT_SIZE];
        UINTN InputSize = 0;
    
        Status = gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid, NULL, (VOID**)&Gop);
        if (EFI_ERROR(Status)) {
            Print(L"Fehler beim Finden des Grafikprotokolls\n");
            return Status;
        }
    	
        Width  = Gop->Mode->Info->HorizontalResolution;
        Height = Gop->Mode->Info->VerticalResolution;
        FrameBuffer = (volatile UINT32*)Gop->Mode->FrameBufferBase;
    
        ClearFrameBuffer();
    	
        // SimpleFS Handles finden
        Status = gBS->LocateHandleBuffer(ByProtocol, &gEfiSimpleFileSystemProtocolGuid, NULL, &HandleCount, &Handles);
        if (EFI_ERROR(Status) || HandleCount == 0) {
            ReportErrorAndWait(L"Kein SimpleFS-Handle gefunden");
            return EFI_NOT_FOUND;
        }
    
        for (UINTN i = 0; i < HandleCount; i++) {
            Status = gBS->HandleProtocol(Handles[i], &gEfiSimpleFileSystemProtocolGuid, (VOID**)&SimpleFs);
            if (!EFI_ERROR(Status) && SimpleFs != NULL) break;
        }
        if (!SimpleFs) {
            ReportErrorAndWait(L"Kein SimpleFS-Handle konnte geöffnet werden");
            return EFI_NOT_FOUND;
        }
    
        // Volume öffnen
        Status = SimpleFs->OpenVolume(SimpleFs, &Root);
        if (EFI_ERROR(Status)) {
            ReportErrorAndWait(L"OpenVolume fehlgeschlagen");
            return Status;
        }
    
        // Benutzereingabe
        InputSize = 0;
        SetTextColor(EFI_TEXT_ATTR(EFI_LIGHTGREEN, EFI_BLACK));
        Print(L"Geben Sie einen Text ein : ");
        SetTextColor(EFI_TEXT_ATTR(EFI_WHITE, EFI_BLACK));
    	
        while (1) {
            EFI_INPUT_KEY Key;
            Status = gST->ConIn->ReadKeyStroke(gST->ConIn, &Key);
            if (EFI_ERROR(Status)) continue;
    
            if (Key.UnicodeChar == CHAR_CARRIAGE_RETURN) {
                break;
            } else if (Key.UnicodeChar == CHAR_BACKSPACE) {
                if (InputSize > 0) {
                    InputSize--;
                    Print(L"\b \b");
                }
            } else {
                if (InputSize < MAX_INPUT_SIZE - 1) {
                    InputBuffer[InputSize++] = Key.UnicodeChar;
                    Print(L"%c", Key.UnicodeChar);
                }
            }
        }
    
        InputBuffer[InputSize] = L'\0';
        Print(L"\n");
    
        // Datei öffnen/erstellen
        Status = Root->Open(
            Root,
            &File,
            L"\\EFI\\BOOT\\text_write.txt",
            EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE | EFI_FILE_MODE_CREATE,
            0
        );
        if (EFI_ERROR(Status)) {
            ReportErrorAndWait(L"Datei konnte nicht geöffnet werden");
            return Status;
        }
    
        // CHAR16 -> CHAR8 für Datei
        UINTN BufferSize = InputSize;
        CHAR8 *AsciiBuffer = AllocateZeroPool(BufferSize);
        if (!AsciiBuffer) {
            File->Close(File);
            ReportErrorAndWait(L"Speicher konnte nicht zugewiesen werden");
            return EFI_OUT_OF_RESOURCES;
        }
    
        for (UINTN i = 0; i < BufferSize; i++) {
            AsciiBuffer[i] = (CHAR8)InputBuffer[i];
        }
    
        Status = File->Write(File, &BufferSize, AsciiBuffer);
        if (EFI_ERROR(Status)) {
            File->Close(File);
            FreePool(AsciiBuffer);
            ReportErrorAndWait(L"Fehler beim Schreiben in die Datei");
            return Status;
        }
    
        File->Close(File);
        FreePool(AsciiBuffer);
    
        Print(L"Text erfolgreich in \\EFI\\BOOT\\text_write.txt geschrieben!\n");
        gBS->Stall(WAIT_MICROSECONDS);
        SetTextColor(EFI_TEXT_ATTR(EFI_WHITE, EFI_BLACK));
    		
        // Datei zum Lesen öffnen
        Status = Root->Open(Root, &File, L"\\EFI\\BOOT\\text_write.txt", EFI_FILE_MODE_READ, 0);
        if (EFI_ERROR(Status)) {
            ReportErrorAndWait(L"Fehler beim Öffnen der Datei zum Lesen");
            return Status;
        }
    
        EFI_FILE_INFO *FileInfo = NULL;
        UINTN InfoSize = 0;
        Status = File->GetInfo(File, &gEfiFileInfoGuid, &InfoSize, NULL);
        if (Status == EFI_BUFFER_TOO_SMALL) {
            FileInfo = AllocateZeroPool(InfoSize);
            if (!FileInfo) {
                File->Close(File);
                ReportErrorAndWait(L"Speicher konnte nicht zugewiesen werden");
                return EFI_OUT_OF_RESOURCES;
            }
            Status = File->GetInfo(File, &gEfiFileInfoGuid, &InfoSize, FileInfo);
        }
        if (EFI_ERROR(Status)) {
            File->Close(File);
            ReportErrorAndWait(L"Fehler beim Lesen der Dateiinfo");
            return Status;
        }
    
        BufferSize = FileInfo->FileSize;
        AsciiBuffer = AllocateZeroPool(BufferSize + 1);
        if (!AsciiBuffer) {
            File->Close(File);
            FreePool(FileInfo);
            ReportErrorAndWait(L"Speicher konnte nicht zugewiesen werden");
            return EFI_OUT_OF_RESOURCES;
        }
    
        Status = File->Read(File, &BufferSize, AsciiBuffer);
        if (EFI_ERROR(Status)) {
            File->Close(File);
            FreePool(FileInfo);
            FreePool(AsciiBuffer);
            ReportErrorAndWait(L"Fehler beim Lesen der Datei");
            return Status;
        }
        File->Close(File);
    
        // CHAR8 -> CHAR16 zum Ausgeben
        CHAR16 *UnicodeBuffer = AllocateZeroPool(BufferSize * sizeof(CHAR16) + sizeof(CHAR16));
        if (!UnicodeBuffer) {
            FreePool(FileInfo);
            FreePool(AsciiBuffer);
            ReportErrorAndWait(L"Speicher konnte nicht zugewiesen werden");
            return EFI_OUT_OF_RESOURCES;
        }
    
        for (UINTN i = 0; i < BufferSize; i++) {
            UnicodeBuffer[i] = (CHAR16)AsciiBuffer[i];
        }
        UnicodeBuffer[BufferSize] = L'\0';
    
        ClearFrameBuffer();
    	
        gST->ConOut->SetCursorPosition(gST->ConOut, 0, 0);
        SetTextColor(EFI_TEXT_ATTR(EFI_LIGHTGREEN, EFI_BLACK));
        Print(L"Inhalt der Datei :\n");
        SetTextColor(EFI_TEXT_ATTR(EFI_WHITE, EFI_BLACK));
        Print(L"%s\n", UnicodeBuffer);
        gBS->Stall(WAIT_MICROSECONDS);
    	
        // Cleanup
        FreePool(UnicodeBuffer);
        FreePool(AsciiBuffer);
        FreePool(FileInfo);
        FreePool(Handles);
    
        return EFI_SUCCESS;
    }
    ⬆ Zurück nach oben

    Codebeispiel 12 – Mandelbrot/Julia Fraktal rendern und als BMP speichern

    Dieses Beispiel zeichnet das Mandelbrot- bzw. Julia Fraktal direkt in den Framebuffer über das Graphics Output Protocol (GOP). Zusätzlich kann das aktuelle Bild als BMP Datei auf ein UEFI Volume gespeichert werden.

    ⚠️ Hinweis: Es wird ein UEFI System mit funktionsfähigem Graphics Output Protocol und Simple File System vorausgesetzt.

    INF Datei für das Projekt

    
    [Defines]
      INF_VERSION                    = 0x00010005
      BASE_NAME                      = MyOwnHelloWorld
      FILE_GUID                      = 6987936E-ED34-44db-AE97-1FA5E4ED2117
      MODULE_TYPE                    = UEFI_APPLICATION
      VERSION_STRING                 = 1.0
      ENTRY_POINT                    = UefiMain
    
    [Sources]
      HelloWorld.c
    
    [Packages]
      MdePkg/MdePkg.dec
    
    [LibraryClasses]
      UefiApplicationEntryPoint
      UefiLib
      UefiBootServicesTableLib
      BaseLib
      BaseMemoryLib
      UefiBootManagerLib
      HiiLib
      MemoryAllocationLib
      DevicePathLib
    

    C Code: Fraktal zeichnen und BMP speichern

    #include <Uefi.h>
    #include <Library/UefiLib.h>
    #include <Library/UefiBootServicesTableLib.h>
    #include <Library/UefiApplicationEntryPoint.h>
    #include <Protocol/GraphicsOutput.h>
    #include <Protocol/SimpleFileSystem.h>
    #include <Library/FileHandleLib.h>
    #include <Library/MemoryAllocationLib.h>
    
    extern int _fltused;
    int _fltused = 0;
    
    #define MAX_ITER 800
    #define ZOOM_FACTOR 1.2
    #define MOVE_FACTOR 64
    
    #pragma pack(push, 1)
    typedef struct {
        UINT16 bfType;
        UINT32 bfSize;
        UINT16 bfReserved1;
        UINT16 bfReserved2;
        UINT32 bfOffBits;
    } BITMAPFILEHEADER;
    
    typedef struct {
        UINT32 biSize;
        INT32  biWidth;
        INT32  biHeight;
        UINT16 biPlanes;
        UINT16 biBitCount;
        UINT32 biCompression;
        UINT32 biSizeImage;
        INT32  biXPelsPerMeter;
        INT32  biYPelsPerMeter;
        UINT32 biClrUsed;
        UINT32 biClrImportant;
    } BITMAPINFOHEADER;
    #pragma pack(pop)
    
    static UINT32 ColorFromIter(int iter)
    {
        if (iter >= MAX_ITER) return 0x000000;
        int v = iter % 256;
        UINT8 r = (UINT8)((v < 128) ? (v*2) : (255-(v-128)*2));
        UINT8 g = (UINT8)((v*5) % 256);
        UINT8 b = (UINT8)(255-r);
        return (r << 16) | (g << 8) | b;
    }
    
    EFI_STATUS SaveBMP(EFI_FILE_PROTOCOL *File, UINT32 *Fb, UINT32 Width, UINT32 Height, UINT32 Pitch)
    {
        EFI_STATUS Status;
        BITMAPFILEHEADER bfh = {0};
        BITMAPINFOHEADER bih = {0};
    
        UINT32 RowBytes = Width * 3;
        UINT32 Padding = (4 - (RowBytes % 4)) % 4;
        UINT32 RowSizePadded = RowBytes + Padding;
    
        // Header setzen
        bfh.bfType = 0x4D42; // BM
        bfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
        bfh.bfSize = bfh.bfOffBits + RowSizePadded * Height;
    
        bih.biSize = sizeof(BITMAPINFOHEADER);
        bih.biWidth = Width;
        bih.biHeight = Height;
        bih.biPlanes = 1;
        bih.biBitCount = 24;
        bih.biCompression = 0;
        bih.biSizeImage = RowSizePadded * Height;
    
        UINTN written = sizeof(BITMAPFILEHEADER);
        Status = File->Write(File, &written, &bfh);
        if (EFI_ERROR(Status)) return Status;
    
        written = sizeof(BITMAPINFOHEADER);
        Status = File->Write(File, &written, &bih);
        if (EFI_ERROR(Status)) return Status;
    
        UINT8 pad[3] = {0,0,0};
    
        for (INT32 y = Height - 1; y >= 0; y--)
        {
            for (UINT32 x = 0; x < Width; x++)
            {
                UINT32 color = Fb[y * Pitch + x];
    
                UINT8 b = (color >> 0)  & 0xFF;
                UINT8 g = (color >> 8)  & 0xFF;
                UINT8 r = (color >> 16) & 0xFF;
    
                UINT8 buf[3] = { b, g, r };
    
                written = 3;
                Status = File->Write(File, &written, buf);
                if (EFI_ERROR(Status)) return Status;
            }
    
            if (Padding)
            {
                written = Padding;
                Status = File->Write(File, &written, pad);
                if (EFI_ERROR(Status)) return Status;
            }
        }
    
        return EFI_SUCCESS;
    }
    
    EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
    {
        EFI_STATUS Status;
        EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop;
    
        Status = gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid, NULL, (VOID**)&Gop);
        if (EFI_ERROR(Status)) { Print(L"GOP nicht gefunden\n"); return Status; }
    
        UINT32 Width  = Gop->Mode->Info->HorizontalResolution;
        UINT32 Height = Gop->Mode->Info->VerticalResolution;
        UINT32 *Fb   = (UINT32*)Gop->Mode->FrameBufferBase;
        UINT32 Pitch = Gop->Mode->Info->PixelsPerScanLine;
    
        Print(L"Aufloesung: %dx%d\n", Width, Height);
    
        double MinRe = -2.0, MaxRe = 1.0;
        double MinIm = -1.0, MaxIm = 1.0;
    
        BOOLEAN JuliaMode = FALSE;
        double JuliaRe = -0.8, JuliaIm = 0.156;
    
        while (1)
        {
            double scaleRe = MaxRe - MinRe;
            double scaleIm = MaxIm - MinIm;
    
            for (UINT32 y = 0; y < Height; y++)
            {
                for (UINT32 x = 0; x < Width; x++)
                {
                    double Z_re, Z_im, c_re, c_im;
    
                    if (JuliaMode)
                    {
                        Z_re = MinRe + x * scaleRe / Width;
                        Z_im = MaxIm - y * scaleIm / Height;
                        c_re = JuliaRe;
                        c_im = JuliaIm;
                    }
                    else
                    {
                        Z_re = 0.0;
                        Z_im = 0.0;
                        c_re = MinRe + x * scaleRe / Width;
                        c_im = MaxIm - y * scaleIm / Height;
                    }
    
                    int iter = 0;
                    while (Z_re*Z_re + Z_im*Z_im <= 4.0 && iter < MAX_ITER)
                    {
                        double Z_re2 = Z_re*Z_re - Z_im*Z_im + c_re;
                        double Z_im2 = 2.0*Z_re*Z_im + c_im;
                        Z_re = Z_re2;
                        Z_im = Z_im2;
                        iter++;
                    }
    
                    Fb[y*Pitch + x] = ColorFromIter(iter);
                }
            }
    
            EFI_INPUT_KEY Key;
            Status = SystemTable->ConIn->ReadKeyStroke(SystemTable->ConIn, &Key);
            if (!EFI_ERROR(Status))
            {
                if (Key.ScanCode == SCAN_ESC) {
                    return EFI_SUCCESS;
                }
    			
                switch (Key.UnicodeChar)
                {
                    case 'y': { double ReC=(MinRe+MaxRe)/2, ImC=(MinIm+MaxIm)/2;
                                double ReR=(MaxRe-MinRe)/ZOOM_FACTOR, ImR=(MaxIm-MinIm)/ZOOM_FACTOR;
                                MinRe=ReC-ReR/2; MaxRe=ReC+ReR/2; MinIm=ImC-ImR/2; MaxIm=ImC+ImR/2; break; }
                    case 'x': { double ReC=(MinRe+MaxRe)/2, ImC=(MinIm+MaxIm)/2;
                                double ReR=(MaxRe-MinRe)*ZOOM_FACTOR, ImR=(MaxIm-MinIm)*ZOOM_FACTOR;
                                MinRe=ReC-ReR/2; MaxRe=ReC+ReR/2; MinIm=ImC-ImR/2; MaxIm=ImC+ImR/2; break; }
                    case 'a': { double delta=(MaxIm-MinIm)/MOVE_FACTOR; MinIm+=delta; MaxIm+=delta; break; }
                    case 'q': { double delta=(MaxIm-MinIm)/MOVE_FACTOR; MinIm-=delta; MaxIm-=delta; break; }
                    case 'm': { double delta=(MaxRe-MinRe)/MOVE_FACTOR; MinRe-=delta; MaxRe-=delta; break; }
                    case 'n': { double delta=(MaxRe-MinRe)/MOVE_FACTOR; MinRe+=delta; MaxRe+=delta; break; }
    
                    case 'j': { JuliaMode=!JuliaMode; Print(L"Modus: %s\n", JuliaMode?L"Julia":L"Mandelbrot"); break; }
    
                    case 'l': JuliaRe += 0.01; break;
                    case 'h': JuliaRe -= 0.01; break;
    
                    case 'i': JuliaIm += 0.01; break;
                    case 'k': JuliaIm -= 0.01; break;
    
                    case 's':
                    {
                        EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Volume;
                        EFI_FILE_PROTOCOL *Root;
                        EFI_FILE_PROTOCOL *File;
    
                        Status = gBS->LocateProtocol(&gEfiSimpleFileSystemProtocolGuid, NULL, (VOID**)&Volume);
                        if (EFI_ERROR(Status)) break;
    
                        Status = Volume->OpenVolume(Volume, &Root);
                        if (EFI_ERROR(Status)) break;
    
                        Status = Root->Open(Root, &File, L"\\EFI\\BOOT\\bild.bmp",
                                            EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE | EFI_FILE_MODE_CREATE,
                                            0);
                        if (EFI_ERROR(Status)) break;
    
                        Status = SaveBMP(File, Fb, Width, Height, Pitch);
                        File->Close(File);
                        if (EFI_ERROR(Status)) break;
    
                        Print(L"BMP gespeichert: bild.bmp\n");
                        break;
                    }
                }
            }
        }
    }

    Zusätzliches Beispiel 13 - UEFI Pong mit Hindernis

    Dieses Beispiel demonstriert die Erstellung eines kleinen, interaktiven UEFI Konsolen- und Grafikprogramms. Das Spiel implementiert die klassische Pong-Mechanik mit einem Hindernis auf einem UEFI Bildschirm.

    Die Spieler steuern ihre Schläger über die Tasten: Q / A für Spieler 1 und P / L für Spieler 2, um den Ball zu treffen. Das Spiel kann mit ESC beendet werden. Das Programm zeigt, wie man:

    Die Schläger und der Ball werden als farbige Rechtecke dargestellt. Das Hindernis in der Mitte verändert seine Höhe nach mehreren Ballkontakten. Die Geschwindigkeit des Balls nimmt zu, wenn bestimmte Treffer erreicht werden.

    INF Datei für das Projekt

    
    [Defines]
      INF_VERSION                    = 0x00010005
      BASE_NAME                      = MyOwnHelloWorld
      FILE_GUID                      = 6987936E-ED34-44db-AE97-1FA5E4ED2117
      MODULE_TYPE                    = UEFI_APPLICATION
      VERSION_STRING                 = 1.0
      ENTRY_POINT                    = UefiMain
    
    [Sources]
      HelloWorld.c
    
    [Packages]
      MdePkg/MdePkg.dec
    
    [LibraryClasses]
      UefiApplicationEntryPoint
      UefiLib
      UefiBootServicesTableLib
      BaseLib
      BaseMemoryLib
      UefiBootManagerLib
      HiiLib
      MemoryAllocationLib
      DevicePathLib
    

    C Code: Pong Game

    #include <Uefi.h>
    #include <Library/UefiLib.h>
    #include <Library/UefiBootServicesTableLib.h>
    #include <Protocol/GraphicsOutput.h>
    #include <Protocol/SimpleTextIn.h>
    
    #define TILE           20
    #define TOP_MARGIN     32
    #define PADDLE_WIDTH   20
    #define PADDLE_HEIGHT  100
    #define BALL_SIZE      20
    #define SPEED_US       50000
    #define PADDLE_STEP    10
    #define BALL_STEP      5
    #define HIT_SPEED_STEP 5000
    #define HITS_TO_SPEEDUP 5
    #define OBSTACLE_GROW  5
    
    typedef struct { INTN x; INTN y; } POINT;
    
    EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop;
    EFI_SYSTEM_TABLE *gST;
    UINT32 *FrameBuffer;
    UINT32 Width, Height;
    
    POINT Paddle1, Paddle2;
    POINT Ball;
    POINT Obstacle;
    INTN BallDirX = 1, BallDirY = 1;
    UINTN Score1 = 0, Score2 = 0;
    UINTN HitCounter = 0;
    UINT32 SpeedUs = SPEED_US;
    UINTN ObstacleHeight = TILE;
    
    UINT32 Rand(UINT32 max);
    VOID DrawPixel(UINTN x, UINTN y, UINT32 c);
    VOID DrawRect(UINTN x, UINTN y, UINTN w, UINTN h, UINT32 c);
    VOID DrawBorder(UINT32 color);
    VOID DrawScoreText();
    VOID ResetGame(UINTN winner);
    
    UINT32 Rand(UINT32 max) {
        static UINT32 seed = 0x12345678;
        seed = seed * 1664525 + 1013904223;
        return seed % max;
    }
    
    VOID DrawPixel(UINTN x, UINTN y, UINT32 c) {
        if (x < Width && y < Height) FrameBuffer[y * Width + x] = c;
    }
    
    VOID DrawRect(UINTN x, UINTN y, UINTN w, UINTN h, UINT32 c) {
        for (UINTN py = y; py < y + h; py++)
            for (UINTN px = x; px < x + w; px++)
                DrawPixel(px, py, c);
    }
    
    VOID DrawBorder(UINT32 color) {
        for (UINTN x = 0; x < Width; x++) {
            DrawPixel(x, TOP_MARGIN, color);
            DrawPixel(x, Height - 1, color);
        }
    }
    
    VOID DrawScoreText() {
        gST->ConOut->SetCursorPosition(gST->ConOut, 0, 0);
        Print(L"Player 1: %u | Player 2: %u | Hits: %u", Score1, Score2, HitCounter);
    }
    
    VOID ResetGame(UINTN winner) {
        DrawRect(0, TOP_MARGIN, Width, Height - TOP_MARGIN, 0x000000);
    
        Paddle1.x = 40;
        Paddle1.y = Height / 2 - PADDLE_HEIGHT / 2;
    
        Paddle2.x = Width - 40 - PADDLE_WIDTH;
        Paddle2.y = Height / 2 - PADDLE_HEIGHT / 2;
    
        Ball.x = Width / 2;
        Ball.y = Height / 2;
    
        if (winner == 1) BallDirX = 1;
        else if (winner == 2) BallDirX = -1;
        else BallDirX = (Rand(2) == 0) ? 1 : -1;
    
        BallDirY = (Rand(2) == 0) ? 1 : -1;
    
        SpeedUs = SPEED_US;
        HitCounter = 0;
    
        ObstacleHeight = TILE;
        Obstacle.x = (Width / 2) + BALL_SIZE * 2;
        Obstacle.y = (Height / 2) - ObstacleHeight / 2;
    
        DrawRect(Paddle1.x, Paddle1.y, PADDLE_WIDTH, PADDLE_HEIGHT, 0x0000FF);
        DrawRect(Paddle2.x, Paddle2.y, PADDLE_WIDTH, PADDLE_HEIGHT, 0x0000FF);
        DrawRect(Ball.x, Ball.y, BALL_SIZE, BALL_SIZE, 0xFF0000);
        DrawRect(Obstacle.x, Obstacle.y, TILE, ObstacleHeight, 0xFFFF00);
    
        DrawBorder(0xFFFFFF);
        DrawScoreText();
    }
    
    EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) {
        EFI_STATUS Status;
        EFI_INPUT_KEY Key;
    
        gST = SystemTable;
    
        Status = gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid, NULL, (VOID**)&Gop);
        if (EFI_ERROR(Status)) return Status;
    
        Width  = Gop->Mode->Info->HorizontalResolution;
        Height = Gop->Mode->Info->VerticalResolution;
        FrameBuffer = (UINT32*)Gop->Mode->FrameBufferBase;
    
        ResetGame(0);
    
        while (TRUE) {
            DrawRect(Paddle1.x, Paddle1.y, PADDLE_WIDTH, PADDLE_HEIGHT, 0x000000);
            DrawRect(Paddle2.x, Paddle2.y, PADDLE_WIDTH, PADDLE_HEIGHT, 0x000000);
            DrawRect(Ball.x, Ball.y, BALL_SIZE, BALL_SIZE, 0x000000);
    
            Status = gST->ConIn->ReadKeyStroke(gST->ConIn, &Key);
            if (!EFI_ERROR(Status)) {
                if (Key.ScanCode == SCAN_ESC) break;
                if (Key.UnicodeChar == L'q' || Key.UnicodeChar == L'Q') Paddle1.y -= PADDLE_STEP;
                if (Key.UnicodeChar == L'a' || Key.UnicodeChar == L'A') Paddle1.y += PADDLE_STEP;
                if (Key.UnicodeChar == L'p' || Key.UnicodeChar == L'P') Paddle2.y -= PADDLE_STEP;
                if (Key.UnicodeChar == L'l' || Key.UnicodeChar == L'L') Paddle2.y += PADDLE_STEP;
            }
    
            if (Paddle1.y < TOP_MARGIN) Paddle1.y = TOP_MARGIN;
            if (Paddle1.y + PADDLE_HEIGHT > Height) Paddle1.y = Height - PADDLE_HEIGHT;
            if (Paddle2.y < TOP_MARGIN) Paddle2.y = TOP_MARGIN;
            if (Paddle2.y + PADDLE_HEIGHT > Height) Paddle2.y = Height - PADDLE_HEIGHT;
    
            Ball.x += BallDirX * BALL_STEP;
            Ball.y += BallDirY * BALL_STEP;
    
            if (Ball.y <= TOP_MARGIN+4 || Ball.y + BALL_SIZE >= Height) BallDirY = -BallDirY;
    
            if ((Ball.x <= Paddle1.x + PADDLE_WIDTH &&
                 Ball.y + BALL_SIZE >= Paddle1.y &&
                 Ball.y <= Paddle1.y + PADDLE_HEIGHT) ||
                (Ball.x + BALL_SIZE >= Paddle2.x &&
                 Ball.y + BALL_SIZE >= Paddle2.y &&
                 Ball.y <= Paddle2.y + PADDLE_HEIGHT)) {
                BallDirX = -BallDirX;
                HitCounter++;
                if (HitCounter % HITS_TO_SPEEDUP == 0 && SpeedUs > 10000) {
                    SpeedUs -= HIT_SPEED_STEP;
                    ObstacleHeight += OBSTACLE_GROW;
                    Obstacle.y -= OBSTACLE_GROW / 2;
                }
            }
    
            if (Ball.x + BALL_SIZE > Obstacle.x &&
                Ball.x < Obstacle.x + TILE &&
                Ball.y + BALL_SIZE > Obstacle.y &&
                Ball.y < Obstacle.y + TILE) {
                BallDirX = -BallDirX;
                BallDirY = -BallDirY;
            }
    
            if (Ball.x <= 0) { Score2++; ResetGame(2); continue; }
            if (Ball.x + BALL_SIZE >= Width) { Score1++; ResetGame(1); continue; }
    
            DrawRect(Paddle1.x, Paddle1.y, PADDLE_WIDTH, PADDLE_HEIGHT, 0x0000FF);
            DrawRect(Paddle2.x, Paddle2.y, PADDLE_WIDTH, PADDLE_HEIGHT, 0x0000FF);
            DrawRect(Ball.x, Ball.y, BALL_SIZE, BALL_SIZE, 0xFF0000);
            DrawRect(Obstacle.x, Obstacle.y, TILE, ObstacleHeight, 0xFFFF00);
    
            DrawBorder(0xFFFFFF);
            DrawScoreText();
    
            gBS->Stall(SpeedUs);
        }
    
        DrawRect(0, TOP_MARGIN, Width, Height - TOP_MARGIN, 0x000000);
        Print(L"Spiel beendet\n");
    
        return EFI_SUCCESS;
    }
    ⬆ Zurück nach oben

    Zusätzliches Beispiel 14 - UEFI Tron Arena

    Dieses Beispiel demonstriert die Erstellung eines interaktiven UEFI Konsolen- und Grafikprogramms. Das Spiel implementiert ein Zweispieler Arena Spiel Tron Klassiker) mit Hindernissen und Turbo Mechanik auf einem UEFI Bildschirm.

    Die Spieler steuern ihre Charaktere über die Tasten: Q / A / S für Spieler 1 und N / M / , für Spieler 2, um sich zu bewegen und ihren Turbo zu aktivieren. Das Spiel kann mit ESC beendet werden. Das Programm zeigt, wie man:

    Die Spieler werden als farbige Pixel dargestellt, Hindernisse erscheinen zufällig und die Turbo Leiste zeigt die verfügbare Energie. Kollisionen führen zu einer kurzen Explosion und einem Punkteverlust des getroffenen Spielers.

    INF Datei für das Projekt

    
    [Defines]
      INF_VERSION                    = 0x00010005
      BASE_NAME                      = MyOwnHelloWorld
      FILE_GUID                      = 6987936E-ED34-44db-AE97-1FA5E4ED2117
      MODULE_TYPE                    = UEFI_APPLICATION
      VERSION_STRING                 = 1.0
      ENTRY_POINT                    = UefiMain
    
    [Sources]
      HelloWorld.c
    
    [Packages]
      MdePkg/MdePkg.dec
    
    [LibraryClasses]
      UefiApplicationEntryPoint
      UefiLib
      UefiBootServicesTableLib
      BaseLib
      BaseMemoryLib
      UefiBootManagerLib
      HiiLib
      MemoryAllocationLib
      DevicePathLib
    

    C Code: Tron Game

    #include <Uefi.h>
    #include <Library/UefiLib.h>
    #include <Library/UefiBootServicesTableLib.h>
    #include <Library/MemoryAllocationLib.h>
    #include <Library/BaseMemoryLib.h>
    #include <Library/PrintLib.h>
    #include <Protocol/GraphicsOutput.h>
    #include <Protocol/SimpleTextIn.h>
    
    #ifdef _MSC_VER
    int _fltused = 0;
    #endif
    
    #define P1_COLOR_RED   0xFF
    #define P1_COLOR_GREEN 0x00
    #define P1_COLOR_BLUE  0x00
    
    #define P2_COLOR_RED   0x00
    #define P2_COLOR_GREEN 0x00
    #define P2_COLOR_BLUE  0xFF
    
    #define BG_COLOR_RED   0x00
    #define BG_COLOR_GREEN 0x00
    #define BG_COLOR_BLUE  0x00
    
    #define BORDER_COLOR_RED   0xFF
    #define BORDER_COLOR_GREEN 0xFF
    #define BORDER_COLOR_BLUE  0xFF
    
    #define FIELD_MARGIN 60
    #define INITIAL_SPEED 50000
    #define TURBO_TIME 2000000
    #define TURBO_FACTOR 4
    #define MAX_OBSTACLES 50
    #define SAFE_MARGIN ((INTN)100)
    #define TICK_MS 5000
    
    #define TURBO_CHARGE_MAX 100.0
    #define TURBO_CHARGE_INCREMENT 0.05
    
    typedef struct {
        INTN x;
        INTN y;
        INTN dir;
        EFI_GRAPHICS_OUTPUT_BLT_PIXEL color;
        INTN moveCounter;
    } PLAYER;
    
    typedef struct {
        INTN x;
        INTN y;
    } OBSTACLE;
    
    OBSTACLE obstacles[MAX_OBSTACLES];
    UINTN obstacleCount = 0;
    
    INTN p1TurboTime = 0;
    INTN p2TurboTime = 0;
    
    EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop;
    UINT32 *collisionBuffer;
    UINTN Width, Height;
    
    UINT32 RandomSeed = 0xDEADBEEF;
    UINT32 Random() {
        RandomSeed = RandomSeed * 1664525 + 1013904223;
        return RandomSeed;
    }
    
    VOID PutPixel(INTN x, INTN y, EFI_GRAPHICS_OUTPUT_BLT_PIXEL *color) {
        if (x < 0 || y < 0 || x >= (INTN)Width || y >= (INTN)Height) return;
        EFI_GRAPHICS_OUTPUT_BLT_PIXEL Pixel = *color;
        Gop->Blt(Gop, &Pixel, EfiBltVideoFill, 0, 0, x, y, 1, 1, 0);
        collisionBuffer[y * Width + x] =
            (Pixel.Red << 16) | (Pixel.Green << 8) | Pixel.Blue;
    }
    
    BOOLEAN CheckCollision(INTN x, INTN y) {
        if (x < FIELD_MARGIN || y < FIELD_MARGIN ||
            x >= (INTN)(Width - FIELD_MARGIN) ||
            y >= (INTN)(Height - FIELD_MARGIN))
            return TRUE;
    
        return collisionBuffer[y * Width + x] != 0;
    }
    
    VOID DrawRectangle(INTN x1, INTN y1, INTN x2, INTN y2,
                       EFI_GRAPHICS_OUTPUT_BLT_PIXEL *color) {
        for (INTN y = y1; y <= y2; y++)
            for (INTN x = x1; x <= x2; x++)
                PutPixel(x, y, color);
    }
    
    VOID DrawBorder() {
        EFI_GRAPHICS_OUTPUT_BLT_PIXEL border =
            {BORDER_COLOR_BLUE, BORDER_COLOR_GREEN, BORDER_COLOR_RED, 0};
    
        DrawRectangle(FIELD_MARGIN, FIELD_MARGIN,
                      Width - FIELD_MARGIN, FIELD_MARGIN + 2, &border);
        DrawRectangle(FIELD_MARGIN, Height - FIELD_MARGIN,
                      Width - FIELD_MARGIN, Height - FIELD_MARGIN + 2, &border);
        DrawRectangle(FIELD_MARGIN, FIELD_MARGIN,
                      FIELD_MARGIN + 2, Height - FIELD_MARGIN, &border);
        DrawRectangle(Width - FIELD_MARGIN, FIELD_MARGIN,
                      Width - FIELD_MARGIN + 2, Height - FIELD_MARGIN, &border);
    }
    
    VOID ClearScreen() {
        EFI_GRAPHICS_OUTPUT_BLT_PIXEL bg =
            {BG_COLOR_BLUE, BG_COLOR_GREEN, BG_COLOR_RED, 0};
        SetMem(collisionBuffer, sizeof(UINT32) * Width * Height, 0);
        DrawRectangle(0, 0, Width - 1, Height - 1, &bg);
    }
    
    VOID MovePlayer(PLAYER *p) {
        switch (p->dir) {
            case 0: p->y--; break;
            case 1: p->x++; break;
            case 2: p->y++; break;
            case 3: p->x--; break;
        }
    }
    
    VOID CrashAnimation(PLAYER *p){
        EFI_GRAPHICS_OUTPUT_BLT_PIXEL colors[4] = {
            {0xFF,0xFF,0xFF,0},
            {0xFF,0xA0,0x00,0},
            {0xFF,0x40,0x00,0},
            {0x80,0x00,0x00,0}
        };
    
        INTN radius = 8;
        INTN frames = 6;
    
        for(INTN f=0; f=0?1:-1) * f);
                    INTN dy = y + ((y>=0?1:-1) * f);
    
                    INTN dist = ax + ay;
                    EFI_GRAPHICS_OUTPUT_BLT_PIXEL *c;
                    if(dist<=1) c=&colors[0];
                    else if(dist<=3) c=&colors[1];
                    else if(dist<=6) c=&colors[2];
                    else c=&colors[3];
    
                    PutPixel(p->x+dx, p->y+dy, c);
                }
            }
    
            gBS->Stall(100000); // 0,1 Sekunden pro Frame
        }
    }
    
    VOID DrawScore(UINTN score1, UINTN score2){
        CHAR16 buffer[64];
        UnicodeSPrint(buffer,sizeof(buffer),
                      L"Player 1: %d   |   Player 2: %d",
                      score1,score2);
    
        gST->ConOut->SetCursorPosition(gST->ConOut, 10, 0);
        gST->ConOut->OutputString(gST->ConOut, buffer);
    }
    
    VOID DrawTurboBar(double p1Percent, double p2Percent) {
        EFI_GRAPHICS_OUTPUT_BLT_PIXEL green = {0x00, 0xFF, 0x00, 0};
        EFI_GRAPHICS_OUTPUT_BLT_PIXEL gray  = {0x80, 0x80, 0x80, 0};
        
        INTN barWidth  = 50;
        INTN barHeight = 5;
        INTN p1X = 80, p1Y = 35;
        INTN p2X = 225, p2Y = 35;
    
        INTN p1Width = (INTN)((barWidth * p1Percent) / 100.0 + 0.5);
        INTN p2Width = (INTN)((barWidth * p2Percent) / 100.0 + 0.5);
    
        DrawRectangle(p1X, p1Y, p1X + barWidth, p1Y + barHeight, &gray);
        DrawRectangle(p2X, p2Y, p2X + barWidth, p2Y + barHeight, &gray);
    
        DrawRectangle(p1X, p1Y, p1X + p1Width, p1Y + barHeight, &green);
        DrawRectangle(p2X, p2Y, p2X + p2Width, p2Y + barHeight, &green);
    
        CHAR16 buffer[32];
        UnicodeSPrint(buffer, sizeof(buffer), L"%03d%%", (INTN)p1Percent);
        gST->ConOut->SetCursorPosition(gST->ConOut, 17, 1);
        gST->ConOut->OutputString(gST->ConOut, buffer);
    
        UnicodeSPrint(buffer, sizeof(buffer), L"%03d%%", (INTN)p2Percent);
        gST->ConOut->SetCursorPosition(gST->ConOut, 35, 1);
        gST->ConOut->OutputString(gST->ConOut, buffer);
    }
    
    VOID DrawObstacle(INTN x, INTN y){
        EFI_GRAPHICS_OUTPUT_BLT_PIXEL blue  = {0xFF,0x00,0x00,0};
        EFI_GRAPHICS_OUTPUT_BLT_PIXEL cyan  = {0xFF,0xFF,0x00,0};
        EFI_GRAPHICS_OUTPUT_BLT_PIXEL yel   = {0x00,0xFF,0xFF,0};
        EFI_GRAPHICS_OUTPUT_BLT_PIXEL white = {0xFF,0xFF,0xFF,0};
    
        for(INTN yy=-7;yy<7;yy++){
            for(INTN xx=-7;xx<7;xx++){
                INTN ax = xx<0?-xx:xx;
                INTN ay = yy<0?-yy:yy;
    
                BOOLEAN spike =
                    (ax==0) || (ay==0) || (ax==ay && ax<=6);
    
                if(!spike) continue;
    
                EFI_GRAPHICS_OUTPUT_BLT_PIXEL *c;
                INTN d=ax+ay;
    
                if(d<=1) c=&white;
                else if(d<=4) c=&yel;
                else if(d<=7) c=&cyan;
                else c=&blue;
    
                PutPixel(x+xx,y+yy,c);
            }
        }
    }
    
    VOID RedrawObstacles(){
        for(UINTN i=0;i= MAX_OBSTACLES) return;
    
        INTN x, y;
        do {
            x = FIELD_MARGIN + 10 + (INTN)(Random() % (Width - 2*FIELD_MARGIN - 20));
            y = FIELD_MARGIN + 10 + (INTN)(Random() % (Height - 2*FIELD_MARGIN - 20));
        } while((x > (p1->x - SAFE_MARGIN) && x < (p1->x + SAFE_MARGIN) &&
                 y > (p1->y - SAFE_MARGIN) && y < (p1->y + SAFE_MARGIN)) ||
                (x > (p2->x - SAFE_MARGIN) && x < (p2->x + SAFE_MARGIN) &&
                 y > (p2->y - SAFE_MARGIN) && y < (p2->y + SAFE_MARGIN)));
    
        obstacles[obstacleCount].x = x;
        obstacles[obstacleCount].y = y;
        obstacleCount++;
    }
    
    VOID HandleCollision(PLAYER *p1, PLAYER *p2, PLAYER *crashed, UINTN *score){
        (*score)++;
        CrashAnimation(crashed);
        AddRandomObstacle(p1,p2);
    }
    
    EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable){
        EFI_STATUS Status =
            gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid,
                                NULL,(VOID**)&Gop);
        if(EFI_ERROR(Status)) return Status;
    
        Width = Gop->Mode->Info->HorizontalResolution;
        Height = Gop->Mode->Info->VerticalResolution;
    
        collisionBuffer =
            AllocateZeroPool(sizeof(UINT32)*Width*Height);
    
        EFI_SIMPLE_TEXT_INPUT_PROTOCOL *Input = SystemTable->ConIn;
    
        EFI_GRAPHICS_OUTPUT_BLT_PIXEL P1Color=
            {P1_COLOR_BLUE,P1_COLOR_GREEN,P1_COLOR_RED,0};
        EFI_GRAPHICS_OUTPUT_BLT_PIXEL P2Color=
            {P2_COLOR_BLUE,P2_COLOR_GREEN,P2_COLOR_RED,0};
    
        UINTN score1=0, score2=0;
        UINTN baseDelay=INITIAL_SPEED;
    
        while(1){
    
            ClearScreen();
            DrawBorder();
            DrawScore(score1,score2);
    
            PLAYER p1={Width/3,Height/2,1,P1Color,0};
            PLAYER p2={2*Width/3,Height/2,3,P2Color,0};
    
            p1TurboTime = 0;
            p2TurboTime = 0;
    
            double p1TurboCharge = 100.0;
            double p2TurboCharge = 100.0;
    
    
            BOOLEAN running=TRUE;
    
            while(running){
    
                EFI_INPUT_KEY key;
                if(!EFI_ERROR(Input->ReadKeyStroke(Input,&key))){
    
                    if(key.ScanCode == SCAN_ESC) return EFI_SUCCESS;
    
                    if(key.UnicodeChar==L'Q'||key.UnicodeChar==L'q') p1.dir=(p1.dir+3)%4;
                    if(key.UnicodeChar==L'A'||key.UnicodeChar==L'a') p1.dir=(p1.dir+1)%4;
                    if(key.UnicodeChar==L'S'||key.UnicodeChar==L's'){
                        if(p1TurboCharge >= 100){ p1TurboTime = TURBO_TIME; p1TurboCharge = 0; }
                    }
    
                    if(key.UnicodeChar==L'N'||key.UnicodeChar==L'n') p2.dir=(p2.dir+3)%4;
                    if(key.UnicodeChar==L'M'||key.UnicodeChar==L'm') p2.dir=(p2.dir+1)%4;
                    if(key.UnicodeChar==L',' ){
                        if(p2TurboCharge >= 100){ p2TurboTime = TURBO_TIME; p2TurboCharge = 0; }
                    }
                }
    
                INTN delay1 = baseDelay / ((p1TurboTime > 0) ? TURBO_FACTOR : 1);
                if(p1.moveCounter >= delay1){
                    MovePlayer(&p1);
                    p1.moveCounter = 0;
                    if(CheckCollision(p1.x,p1.y)){
                        HandleCollision(&p1,&p2,&p1,&score2);
                        running=FALSE;
                        break;
                    }
                }
                PutPixel(p1.x,p1.y,&p1.color);
                p1.moveCounter += TICK_MS;
                if(p1TurboTime > 0){
                    p1TurboTime -= TICK_MS;
                } else {
                    if(p1TurboCharge < TURBO_CHARGE_MAX){
                        p1TurboCharge += TURBO_CHARGE_INCREMENT;  // Aufladung langsam
                        if(p1TurboCharge > TURBO_CHARGE_MAX) p1TurboCharge = TURBO_CHARGE_MAX;
                    }
                }
    
                INTN delay2 = baseDelay / ((p2TurboTime > 0) ? TURBO_FACTOR : 1);
                if(p2.moveCounter >= delay2){
                    MovePlayer(&p2);
                    p2.moveCounter = 0;
                    if(CheckCollision(p2.x,p2.y)){
                        HandleCollision(&p1,&p2,&p2,&score1);
                        running=FALSE;
                        break;
                    }
                }
                PutPixel(p2.x,p2.y,&p2.color);
                p2.moveCounter += TICK_MS;
                if(p2TurboTime > 0){
                    p2TurboTime -= TICK_MS;
                } else {
                    if(p2TurboCharge < TURBO_CHARGE_MAX){
                        p2TurboCharge += TURBO_CHARGE_INCREMENT;  // Aufladung langsam
                        if(p2TurboCharge > TURBO_CHARGE_MAX) p2TurboCharge = TURBO_CHARGE_MAX;
                    }
                }
    
                RedrawObstacles();
                DrawScore(score1,score2);
    
                DrawTurboBar(p1TurboCharge, p2TurboCharge);
    
                gBS->Stall(TICK_MS);
            }
        }
    
        return EFI_SUCCESS;
    }
    ⬆ Zurück nach oben

    UEFI Shell Befehle – Übersicht & Anleitung

    🔹 Dateisystem & Laufwerke

    BefehlBeschreibung
    mapZeigt alle Laufwerke / Geräte
    fs<n>:Wechselt auf Laufwerk n
    dirListet Dateien im aktuellen Verzeichnis
    cd <Pfad>Wechselt das Verzeichnis
    md <Ordner>Neues Verzeichnis erstellen
    rm <Datei>Datei löschen
    cp <Quelle> <Ziel>Datei kopieren
    mv <Quelle> <Ziel>Datei verschieben / umbenennen

    🔹 Booten & EFI

    BefehlBeschreibung
    bcfg boot add <Nummer> <Pfad> <Beschreibung>Boot-Eintrag hinzufügen
    bcfg boot rm <Nummer>Boot-Eintrag löschen
    bcfg boot mv <von> <nach>Boot-Eintrag verschieben
    exitUEFI Shell verlassen / System bootet
    resetNeustart der Maschine
    load <EFI Datei>Lädt und startet eine EFI-Anwendung
    loadlin <Kernel>Lädt Linux Kernel (wenn unterstützt)

    🔹 Shell & Anzeige

    BefehlBeschreibung
    helpZeigt Hilfe / alle Befehle
    verZeigt UEFI Shell Version
    clsBildschirm löschen
    echo <Text>Text ausgeben
    pauseWartet auf Tastendruck
    set <Var> <Wert>Umgebungsvariable setzen
    unset <Var>Umgebungsvariable löschen
    printenvAlle Umgebungsvariablen anzeigen

    🔹 Netzwerk (falls UEFI unterstützt)

    BefehlBeschreibung
    ifconfigNetzwerkinterface anzeigen
    ping <host>Ping Test
    dhcpIP-Adresse automatisch per DHCP beziehen
    tftp <host> <Datei>Datei per TFTP herunterladen
    set <Interface> <Option>Interface konfigurieren

    ℹ️ Hinweise

    ⬆ Zurück nach oben

    iPXE Befehle – Übersicht & Anleitung

    🔹 Netzwerk

    BefehlBeschreibung
    dhcpBezieht IP-Adresse per DHCP
    ifstatZeigt Netzwerkinterfaces
    routeZeigt Routing-Tabelle
    ping <host>Ping Test

    🔹 HTTP / Dateien

    BefehlBeschreibung
    imgfetch URLLädt Datei (HTTP/HTTPS)
    chain URL|PfadStartet iPXE-Script oder EFI
    imgstatZeigt geladene Images
    imgfreeLöscht geladene Images

    🔹 Scripting

    BefehlBeschreibung
    #!ipxeScript-Header (Pflicht, markiert Start eines iPXE-Scripts)
    :labelSprungmarke
    goto labelSpringt zu Marke
    set var wertVariable setzen
    isset varVariable prüfen
    iseq a bVergleich

    🔹 Menü

    BefehlBeschreibung
    menu TitelZeigt ein Auswahlmenü
    item key TextDefiniert einen Menüpunkt
    choose varSpeichert die Auswahl in einer Variable

    🔹 Anzeige & Steuerung

    BefehlBeschreibung
    echo TextText ausgeben
    sleep SekPause/Warten für x Sekunden
    shelliPXE Shell öffnen
    exitScript beenden

    🔹 Beispiel: Lichtsteuerung mit Menü

    Dieses Script zeigt, wie man DHCP einrichtet, ein Menü erstellt und per HTTP-Befehl ein Gerät steuert:

    #!ipxe
    
    echo ================
    echo   DHCP Starten
    echo ================
    
    dhcp
    
    :start
    # Menü
    menu Lichtsteuerung
    item on       Licht einschalten
    item off      Licht ausschalten
    item exit     Beenden
    choose target && goto ${target}
    
    :on
    echo
    echo Licht wird eingeschaltet...
    imgfetch http://192.168.178.30:8080/set/1.0.0/dpt1.1/true
    goto start
    
    :off
    echo
    echo Licht wird ausgeschaltet...
    imgfetch http://192.168.178.30:8080/set/1.0.0/dpt1.1/false
    goto start
    
    :exit
    echo
    echo Programm beendet. iPXE kehrt zur Firmware zurück.
    sleep 2
    

    Erklärung:

    ℹ️ Hinweise

    ⬆ Zurück nach oben

    UEFI & EDK II – Weiterführende Links

    📘 Offizielle Spezifikationen

    🛠️ EDK II / Tianocore

    📚 Tutorials & Praxisbeispiele

    🧪 Emulatoren & Testumgebungen

    ⬆ Zurück nach oben

    Download von Tools & Beispielen

    🛠️ Nützliche Tools

    ⬆ Zurück nach oben