├── ASIC_BOX ├── ASIC_BOX.png └── MINI_mINER1.stl ├── ESP32-DOIT-DEVKIT-V1-Board-Pinout-36-GPIOs-updated.webp ├── ESP32_miner ├── ESP32_miner.ino ├── Lib │ ├── Free_Fonts.h │ ├── Setup300_MiniMiner.h │ ├── User_Setup_Select.h │ └── images.h └── configs.h ├── Hardware.jpg ├── README.md └── img ├── Nerdminer1.jpg └── Nerdminer2.jpg /ASIC_BOX/ASIC_BOX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitMaker-hub/ESP32_NerdMiner/d7b1c565b4485ecefb77780f11a914d879459ac6/ASIC_BOX/ASIC_BOX.png -------------------------------------------------------------------------------- /ASIC_BOX/MINI_mINER1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitMaker-hub/ESP32_NerdMiner/d7b1c565b4485ecefb77780f11a914d879459ac6/ASIC_BOX/MINI_mINER1.stl -------------------------------------------------------------------------------- /ESP32-DOIT-DEVKIT-V1-Board-Pinout-36-GPIOs-updated.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitMaker-hub/ESP32_NerdMiner/d7b1c565b4485ecefb77780f11a914d879459ac6/ESP32-DOIT-DEVKIT-V1-Board-Pinout-36-GPIOs-updated.webp -------------------------------------------------------------------------------- /ESP32_miner/ESP32_miner.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "Lib/Free_Fonts.h" 5 | #include "Lib/images.h" 6 | #include "mbedtls/md.h" 7 | #include "configs.h" 8 | #include // Graphics and font library for ILI9341 driver chip 9 | #include 10 | 11 | TFT_eSPI tft = TFT_eSPI(); // Invoke library, pins defined in User_Setup.h 12 | 13 | long templates = 0; 14 | long hashes = 0; 15 | int halfshares = 0; // increase if blockhash has 16 bits of zeroes 16 | int shares = 0; // increase if blockhash has 32 bits of zeroes 17 | int valids = 0; // increased if blockhash <= target 18 | 19 | bool checkHalfShare(unsigned char* hash) { 20 | bool valid = true; 21 | for(uint8_t i=31; i>31-2; i--) { 22 | if(hash[i] != 0) { 23 | valid = false; 24 | break; 25 | } 26 | } 27 | if (valid) { 28 | Serial.print("\thalf share : "); 29 | for (size_t i = 0; i < 32; i++) 30 | Serial.printf("%02x ", hash[i]); 31 | Serial.println(); 32 | } 33 | return valid; 34 | } 35 | 36 | bool checkShare(unsigned char* hash) { 37 | bool valid = true; 38 | for(uint8_t i=31; i>31-4; i--) { 39 | if(hash[i] != 0) { 40 | valid = false; 41 | break; 42 | } 43 | } 44 | if (valid) { 45 | Serial.print("\tshare : "); 46 | for (size_t i = 0; i < 32; i++) 47 | Serial.printf("%02x ", hash[i]); 48 | Serial.println(); 49 | } 50 | return valid; 51 | } 52 | 53 | bool checkValid(unsigned char* hash, unsigned char* target) { 54 | bool valid = true; 55 | for(uint8_t i=31; i>=0; i--) { 56 | if(hash[i] > target[i]) { 57 | valid = false; 58 | break; 59 | } else if (hash[i] < target[i]) { 60 | valid = true; 61 | break; 62 | } 63 | } 64 | if (valid) { 65 | Serial.print("\tvalid : "); 66 | for (size_t i = 0; i < 32; i++) 67 | Serial.printf("%02x ", hash[i]); 68 | Serial.println(); 69 | } 70 | return valid; 71 | } 72 | 73 | uint8_t hex(char ch) { 74 | uint8_t r = (ch > 57) ? (ch - 55) : (ch - 48); 75 | return r & 0x0F; 76 | } 77 | 78 | int to_byte_array(const char *in, size_t in_size, uint8_t *out) { 79 | int count = 0; 80 | if (in_size % 2) { 81 | while (*in && out) { 82 | *out = hex(*in++); 83 | if (!*in) 84 | return count; 85 | *out = (*out << 4) | hex(*in++); 86 | *out++; 87 | count++; 88 | } 89 | return count; 90 | } else { 91 | while (*in && out) { 92 | *out++ = (hex(*in++) << 4) | hex(*in++); 93 | count++; 94 | } 95 | return count; 96 | } 97 | } 98 | 99 | void runWorker(void *name) { 100 | Serial.printf("\nRunning %s on core %d\n", (char *)name, xPortGetCoreID()); 101 | delay(random(0,2000)); 102 | while(true) { 103 | // connect to pool 104 | WiFiClient client; 105 | if (!client.connect(POOL_URL, POOL_PORT)) { 106 | Serial.println("Connection to host failed"); 107 | delay(1000); 108 | break; 109 | } 110 | 111 | // get template 112 | templates++; 113 | DynamicJsonDocument doc(4 * 1024); 114 | String payload; 115 | String line; 116 | // pool: server connection 117 | payload = String("{\"id\": 1, \"method\": \"mining.subscribe\", \"params\": []}\n"); 118 | Serial.print("Sending : "); Serial.println(payload); 119 | client.print(payload.c_str()); 120 | line = client.readStringUntil('\n'); 121 | Serial.print("Receiving: "); Serial.println(line); 122 | deserializeJson(doc, line); 123 | String sub_details = String((const char*) doc["result"][0][0][1]); 124 | String extranonce1 = String((const char*) doc["result"][1]); 125 | int extranonce2_size = doc["result"][2]; 126 | line = client.readStringUntil('\n'); 127 | deserializeJson(doc, line); 128 | String method = String((const char*) doc["method"]); 129 | Serial.print("sub_details: "); Serial.println(sub_details); 130 | Serial.print("extranonce1: "); Serial.println(extranonce1); 131 | Serial.print("extranonce2_size: "); Serial.println(extranonce2_size); 132 | Serial.print("method: "); Serial.println(method); 133 | if(extranonce1.length() == 0) { Serial.println(">>>>>>>>> Worker aborted"); break; } 134 | 135 | // pool: authorize work 136 | payload = String("{\"params\": [\"") + ADDRESS + String("\", \"password\"], \"id\": 2, \"method\": \"mining.authorize\"}\n"); 137 | Serial.print("Sending : "); Serial.println(payload); 138 | client.print(payload.c_str()); 139 | line = client.readStringUntil('\n'); 140 | Serial.print("Receiving: "); Serial.println(line); 141 | deserializeJson(doc, line); 142 | String job_id = String((const char*) doc["params"][0]); 143 | String prevhash = String((const char*) doc["params"][1]); 144 | String coinb1 = String((const char*) doc["params"][2]); 145 | String coinb2 = String((const char*) doc["params"][3]); 146 | JsonArray merkle_branch = doc["params"][4]; 147 | String version = String((const char*) doc["params"][5]); 148 | String nbits = String((const char*) doc["params"][6]); 149 | String ntime = String((const char*) doc["params"][7]); 150 | bool clean_jobs = doc["params"][8]; //bool 151 | Serial.print("job_id: "); Serial.println(job_id); 152 | Serial.print("prevhash: "); Serial.println(prevhash); 153 | Serial.print("coinb1: "); Serial.println(coinb1); 154 | Serial.print("coinb2: "); Serial.println(coinb2); 155 | Serial.print("merkle_branch size: "); Serial.println(merkle_branch.size()); 156 | Serial.print("version: "); Serial.println(version); 157 | Serial.print("nbits: "); Serial.println(nbits); 158 | Serial.print("ntime: "); Serial.println(ntime); 159 | Serial.print("clean_jobs: "); Serial.println(clean_jobs); 160 | line = client.readStringUntil('\n'); 161 | deserializeJson(doc, line); 162 | line = client.readStringUntil('\n'); 163 | deserializeJson(doc, line); 164 | 165 | // calculate target - target = (nbits[2:]+'00'*(int(nbits[:2],16) - 3)).zfill(64) 166 | String target = nbits.substring(2); 167 | int zeros = (int) strtol(nbits.substring(0, 2).c_str(), 0, 16) - 3; 168 | for (int k=0; k> 0) & 0xFF; 343 | bytearray_blockheader[77] = (nonce >> 8) & 0xFF; 344 | bytearray_blockheader[78] = (nonce >> 16) & 0xFF; 345 | bytearray_blockheader[79] = (nonce >> 24) & 0xFF; 346 | 347 | // double sha 348 | mbedtls_md_starts(&ctx); 349 | mbedtls_md_update(&ctx, bytearray_blockheader, 80); 350 | mbedtls_md_finish(&ctx, interResult); 351 | 352 | mbedtls_md_starts(&ctx); 353 | mbedtls_md_update(&ctx, interResult, 32); 354 | mbedtls_md_finish(&ctx, shaResult); 355 | 356 | // check if half share 357 | if(checkHalfShare(shaResult)) { 358 | Serial.printf("%s on core %d: ", (char *)name, xPortGetCoreID()); 359 | Serial.printf("Half share completed with nonce: %d | 0x%x\n", nonce, nonce); 360 | halfshares++; 361 | // check if share 362 | if(checkShare(shaResult)) { 363 | Serial.printf("%s on core %d: ", (char *)name, xPortGetCoreID()); 364 | Serial.printf("Share completed with nonce: %d | 0x%x\n", nonce, nonce); 365 | shares++; 366 | } 367 | } 368 | 369 | // check if valid header 370 | if(checkValid(shaResult, bytearray_target)) { 371 | Serial.printf("%s on core %d: ", (char *)name, xPortGetCoreID()); 372 | Serial.printf("Valid completed with nonce: %d | 0x%x\n", nonce, nonce); 373 | valids++; 374 | payload = String("{\"params\": [\"") + ADDRESS + String("\", \"") + job_id + String("\", \"") + extranonce2 + String("\", \"") + ntime + String("\", \"") + nonce +String("\"], \"id\": 1, \"method\": \"mining.submit\""); 375 | Serial.print("Sending : "); Serial.println(payload); 376 | client.print(payload.c_str()); 377 | line = client.readStringUntil('\n'); 378 | Serial.print("Receiving: "); Serial.println(line); 379 | // exit 380 | nonce = MAX_NONCE; 381 | break; 382 | } 383 | 384 | nonce++; 385 | hashes++; 386 | // exit 387 | if (nonce >= MAX_NONCE) { 388 | Serial.printf("%s on core %d: ", (char *)name, xPortGetCoreID()); 389 | Serial.printf("Nonce > MAX_NONCE\n"); 390 | break; 391 | } 392 | } // exit if found a valid result or nonce > MAX_NONCE 393 | uint32_t duration = micros() - startT; 394 | mbedtls_md_free(&ctx); 395 | // close pool connection 396 | client.stop(); 397 | } 398 | 399 | } 400 | 401 | void runMonitor(void *name) { 402 | unsigned long start = millis(); 403 | while (1) { 404 | unsigned long elapsed = millis()-start; 405 | Serial.printf(">>> Completed %d share(s), %d hashes, avg. hashrate %.3f KH/s\n", 406 | shares, hashes, (1.0*hashes)/elapsed); 407 | 408 | tft.fillRect(0,HEADER_HEIGHT,SC_WIDTH,5,0x5AEB); 409 | unsigned int progress = ((hashes%MAX_NONCE)*1.0/MAX_NONCE)*SC_WIDTH; 410 | tft.fillRect(0,HEADER_HEIGHT,progress,5,TFT_GREENYELLOW); 411 | 412 | tft.setFreeFont(GLCD); 413 | tft.fillRect(SC_XCENTER + 5, HEADER_HEIGHT+5, 80, 60, TFT_BLACK);//Clear header text area 414 | tft.setTextSize(1); tft.setTextColor(TFT_WHITE); tft.setCursor(0, HEADER_HEIGHT+10); 415 | tft.print("Avg. hashrate: "); tft.setTextColor(TFT_GREEN); tft.print(String((1.0*hashes)/elapsed)); tft.setTextColor(TFT_WHITE); tft.println(" KH/s"); 416 | tft.print("Running time : "); tft.setTextColor(TFT_GREEN); tft.print(String(elapsed/1000/60)); tft.setTextColor(TFT_WHITE); tft.print(" m "); tft.setTextColor(TFT_GREEN); tft.print(String((elapsed/1000)%60)); tft.setTextColor(TFT_WHITE); tft.println(" s"); 417 | tft.print("Total hashes : "); tft.setTextColor(TFT_GREEN); tft.print(String(hashes/1000000)); tft.setTextColor(TFT_WHITE); tft.println(" M"); 418 | tft.print("Block templ. : "); tft.setTextColor(TFT_YELLOW); tft.println(String(templates)); tft.setTextColor(TFT_WHITE); 419 | tft.print("Shares 16bits: "); tft.setTextColor(TFT_YELLOW); tft.println(String(halfshares)); tft.setTextColor(TFT_WHITE); 420 | tft.print("Shares 32bits: "); tft.setTextColor(TFT_YELLOW); tft.println(String(shares)); tft.setTextColor(TFT_WHITE); 421 | tft.print("Valid blocks : "); tft.setTextColor(TFT_RED); tft.println(String(valids)); tft.setTextColor(TFT_WHITE); 422 | tft.println("");tft.println(""); 423 | tft.drawLine(0,SC_HEIGHT - 30,SC_WIDTH,SC_HEIGHT - 30,TFT_GREENYELLOW); 424 | tft.print("Pool: "); tft.setTextColor(TFT_GREENYELLOW); tft.print(POOL_URL); tft.print(":"); tft.println(POOL_PORT); tft.setTextColor(TFT_WHITE); 425 | tft.print("IP : "); tft.setTextColor(TFT_GREENYELLOW); tft.println(WiFi.localIP()); tft.setTextColor(TFT_WHITE); 426 | tft.println(""); 427 | delay(5000); 428 | } 429 | } 430 | 431 | void setup(){ 432 | Serial.begin(115200); 433 | delay(500); 434 | 435 | // Idle task that would reset WDT never runs, because core 0 gets fully utilized 436 | disableCore0WDT(); 437 | 438 | tft.init(); //Init tft 439 | tft.setRotation(1); 440 | tft.fillScreen(TFT_BLACK); 441 | tft.setSwapBytes(true); 442 | tft.pushImage(SC_XCENTER - (logo_Width/2) , SC_YCENTER - (logo_Height/2), logo_Width, logo_Height, cryptopasivo); 443 | delay(2000); 444 | tft.fillScreen(TFT_BLACK); 445 | tft.setSwapBytes(true); 446 | tft.pushImage(SC_XCENTER - (btc_Width/2) , SC_YCENTER - (btc_Width/2), btc_Width, btc_Height, bitcoin); 447 | delay(2000); 448 | tft.fillScreen(TFT_BLACK); 449 | 450 | //Print header 451 | tft.fillRect(0, 0, SC_WIDTH, HEADER_HEIGHT-1, 0xF4C3);//Clear header text area 452 | tft.setTextDatum(MC_DATUM); //MIDDLE CENTER - MC_DATUM / TOP CENTER - TC_DATUM 453 | tft.setTextColor(TFT_BLACK);tft.setFreeFont(FMBO9); tft.drawString("NERD SOLOminer", (SC_WIDTH/2), (HEADER_HEIGHT/2) - 1, GFXFF); //drawString(const String& string, int32_t poX, int32_t poY, uint8_t font); 454 | //tft.setSwapBytes(true); 455 | //tft.pushImage(0 , 0, btcMini_Width, btcMini_Height, btcMini); 456 | 457 | tft.setFreeFont(GLCD); 458 | tft.setCursor(0, HEADER_HEIGHT+10); 459 | tft.setTextColor(TFT_WHITE); 460 | delay(100); 461 | tft.println("Nerd SOLOMiner is a solo miner"); 462 | tft.println("on a ESP32."); tft.println(""); tft.setTextColor(TFT_RED); 463 | tft.println("WARNING: you may have to wait longer than the current age of the universe to find a valid block."); 464 | tft.println(); tft.println("Check your probability at Solochance.com"); 465 | WiFi.begin(WIFI_SSID, WIFI_PASSWORD); 466 | while (WiFi.status() != WL_CONNECTED) { 467 | delay(500); 468 | } 469 | delay(3000); 470 | tft.fillRect(0, HEADER_HEIGHT+1, SC_WIDTH, SC_HEIGHT - HEADER_HEIGHT, TFT_BLACK);//Clear header text area 471 | 472 | for (size_t i = 0; i < THREADS; i++) { 473 | char *name = (char*) malloc(32); 474 | sprintf(name, "Worker[%d]", i); 475 | 476 | // Start mining tasks 477 | BaseType_t res = xTaskCreate(runWorker, name, 35000, (void*)name, 1, NULL); 478 | Serial.printf("Starting %s %s!\n", name, res == pdPASS? "successful":"failed"); 479 | } 480 | 481 | // Higher prio monitor task 482 | xTaskCreate(runMonitor, "Monitor", 5000, NULL, 4, NULL); 483 | } 484 | 485 | void loop(){ 486 | } 487 | -------------------------------------------------------------------------------- /ESP32_miner/Lib/Free_Fonts.h: -------------------------------------------------------------------------------- 1 | // Attach this header file to your sketch to use the GFX Free Fonts. You can write 2 | // sketches without it, but it makes referencing them easier. 3 | 4 | // This calls up ALL the fonts but they only get loaded if you actually 5 | // use them in your sketch. 6 | // 7 | // No changes are needed to this header file unless new fonts are added to the 8 | // library "Fonts/GFXFF" folder. 9 | // 10 | // To save a lot of typing long names, each font can easily be referenced in the 11 | // sketch in three ways, either with: 12 | // 13 | // 1. Font file name with the & in front such as &FreeSansBoldOblique24pt7b 14 | // an example being: 15 | // 16 | // tft.setFreeFont(&FreeSansBoldOblique24pt7b); 17 | // 18 | // 2. FF# where # is a number determined by looking at the list below 19 | // an example being: 20 | // 21 | // tft.setFreeFont(FF32); 22 | // 23 | // 3. An abbreviation of the file name. Look at the list below to see 24 | // the abbreviations used, for example: 25 | // 26 | // tft.setFreeFont(FSSBO24) 27 | // 28 | // Where the letters mean: 29 | // F = Free font 30 | // M = Mono 31 | // SS = Sans Serif (double S to distinguish is form serif fonts) 32 | // S = Serif 33 | // B = Bold 34 | // O = Oblique (letter O not zero) 35 | // I = Italic 36 | // # = point size, either 9, 12, 18 or 24 37 | // 38 | // Setting the font to NULL will select the GLCD font: 39 | // 40 | // tft.setFreeFont(NULL); // Set font to GLCD 41 | 42 | #define LOAD_GFXFF 43 | 44 | #ifdef LOAD_GFXFF // Only include the fonts if LOAD_GFXFF is defined in User_Setup.h 45 | 46 | // Use these when printing or drawing text in GLCD and high rendering speed fonts 47 | #define GFXFF 1 48 | #define GLCD 0 49 | #define FONT2 2 50 | #define FONT4 4 51 | #define FONT6 6 52 | #define FONT7 7 53 | #define FONT8 8 54 | 55 | // Use the following when calling setFont() 56 | // 57 | // Reserved for GLCD font // FF0 58 | // 59 | 60 | #define TT1 &TomThumb 61 | 62 | #define FM9 &FreeMono9pt7b 63 | #define FM12 &FreeMono12pt7b 64 | #define FM18 &FreeMono18pt7b 65 | #define FM24 &FreeMono24pt7b 66 | 67 | #define FMB9 &FreeMonoBold9pt7b 68 | #define FMB12 &FreeMonoBold12pt7b 69 | #define FMB18 &FreeMonoBold18pt7b 70 | #define FMB24 &FreeMonoBold24pt7b 71 | 72 | #define FMO9 &FreeMonoOblique9pt7b 73 | #define FMO12 &FreeMonoOblique12pt7b 74 | #define FMO18 &FreeMonoOblique18pt7b 75 | #define FMO24 &FreeMonoOblique24pt7b 76 | 77 | #define FMBO9 &FreeMonoBoldOblique9pt7b 78 | #define FMBO12 &FreeMonoBoldOblique12pt7b 79 | #define FMBO18 &FreeMonoBoldOblique18pt7b 80 | #define FMBO24 &FreeMonoBoldOblique24pt7b 81 | 82 | #define FSS9 &FreeSans9pt7b 83 | #define FSS12 &FreeSans12pt7b 84 | #define FSS18 &FreeSans18pt7b 85 | #define FSS24 &FreeSans24pt7b 86 | 87 | #define FSSB9 &FreeSansBold9pt7b 88 | #define FSSB12 &FreeSansBold12pt7b 89 | #define FSSB18 &FreeSansBold18pt7b 90 | #define FSSB24 &FreeSansBold24pt7b 91 | 92 | #define FSSO9 &FreeSansOblique9pt7b 93 | #define FSSO12 &FreeSansOblique12pt7b 94 | #define FSSO18 &FreeSansOblique18pt7b 95 | #define FSSO24 &FreeSansOblique24pt7b 96 | 97 | #define FSSBO9 &FreeSansBoldOblique9pt7b 98 | #define FSSBO12 &FreeSansBoldOblique12pt7b 99 | #define FSSBO18 &FreeSansBoldOblique18pt7b 100 | #define FSSBO24 &FreeSansBoldOblique24pt7b 101 | 102 | #define FS9 &FreeSerif9pt7b 103 | #define FS12 &FreeSerif12pt7b 104 | #define FS18 &FreeSerif18pt7b 105 | #define FS24 &FreeSerif24pt7b 106 | 107 | #define FSI9 &FreeSerifItalic9pt7b 108 | #define FSI12 &FreeSerifItalic12pt7b 109 | #define FSI19 &FreeSerifItalic18pt7b 110 | #define FSI24 &FreeSerifItalic24pt7b 111 | 112 | #define FSB9 &FreeSerifBold9pt7b 113 | #define FSB12 &FreeSerifBold12pt7b 114 | #define FSB18 &FreeSerifBold18pt7b 115 | #define FSB24 &FreeSerifBold24pt7b 116 | 117 | #define FSBI9 &FreeSerifBoldItalic9pt7b 118 | #define FSBI12 &FreeSerifBoldItalic12pt7b 119 | #define FSBI18 &FreeSerifBoldItalic18pt7b 120 | #define FSBI24 &FreeSerifBoldItalic24pt7b 121 | 122 | #define FF0 NULL //ff0 reserved for GLCD 123 | #define FF1 &FreeMono9pt7b 124 | #define FF2 &FreeMono12pt7b 125 | #define FF3 &FreeMono18pt7b 126 | #define FF4 &FreeMono24pt7b 127 | 128 | #define FF5 &FreeMonoBold9pt7b 129 | #define FF6 &FreeMonoBold12pt7b 130 | #define FF7 &FreeMonoBold18pt7b 131 | #define FF8 &FreeMonoBold24pt7b 132 | 133 | #define FF9 &FreeMonoOblique9pt7b 134 | #define FF10 &FreeMonoOblique12pt7b 135 | #define FF11 &FreeMonoOblique18pt7b 136 | #define FF12 &FreeMonoOblique24pt7b 137 | 138 | #define FF13 &FreeMonoBoldOblique9pt7b 139 | #define FF14 &FreeMonoBoldOblique12pt7b 140 | #define FF15 &FreeMonoBoldOblique18pt7b 141 | #define FF16 &FreeMonoBoldOblique24pt7b 142 | 143 | #define FF17 &FreeSans9pt7b 144 | #define FF18 &FreeSans12pt7b 145 | #define FF19 &FreeSans18pt7b 146 | #define FF20 &FreeSans24pt7b 147 | 148 | #define FF21 &FreeSansBold9pt7b 149 | #define FF22 &FreeSansBold12pt7b 150 | #define FF23 &FreeSansBold18pt7b 151 | #define FF24 &FreeSansBold24pt7b 152 | 153 | #define FF25 &FreeSansOblique9pt7b 154 | #define FF26 &FreeSansOblique12pt7b 155 | #define FF27 &FreeSansOblique18pt7b 156 | #define FF28 &FreeSansOblique24pt7b 157 | 158 | #define FF29 &FreeSansBoldOblique9pt7b 159 | #define FF30 &FreeSansBoldOblique12pt7b 160 | #define FF31 &FreeSansBoldOblique18pt7b 161 | #define FF32 &FreeSansBoldOblique24pt7b 162 | 163 | #define FF33 &FreeSerif9pt7b 164 | #define FF34 &FreeSerif12pt7b 165 | #define FF35 &FreeSerif18pt7b 166 | #define FF36 &FreeSerif24pt7b 167 | 168 | #define FF37 &FreeSerifItalic9pt7b 169 | #define FF38 &FreeSerifItalic12pt7b 170 | #define FF39 &FreeSerifItalic18pt7b 171 | #define FF40 &FreeSerifItalic24pt7b 172 | 173 | #define FF41 &FreeSerifBold9pt7b 174 | #define FF42 &FreeSerifBold12pt7b 175 | #define FF43 &FreeSerifBold18pt7b 176 | #define FF44 &FreeSerifBold24pt7b 177 | 178 | #define FF45 &FreeSerifBoldItalic9pt7b 179 | #define FF46 &FreeSerifBoldItalic12pt7b 180 | #define FF47 &FreeSerifBoldItalic18pt7b 181 | #define FF48 &FreeSerifBoldItalic24pt7b 182 | 183 | // >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 184 | // Now we define "s"tring versions for easy printing of the font name so: 185 | // tft.println(sFF5); 186 | // will print 187 | // Mono bold 9 188 | // >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 189 | 190 | #define sFF0 "GLCD" 191 | #define sTT1 "Tom Thumb" 192 | #define sFF1 "Mono 9" 193 | #define sFF2 "Mono 12" 194 | #define sFF3 "Mono 18" 195 | #define sFF4 "Mono 24" 196 | 197 | #define sFF5 "Mono bold 9" 198 | #define sFF6 "Mono bold 12" 199 | #define sFF7 "Mono bold 18" 200 | #define sFF8 "Mono bold 24" 201 | 202 | #define sFF9 "Mono oblique 9" 203 | #define sFF10 "Mono oblique 12" 204 | #define sFF11 "Mono oblique 18" 205 | #define sFF12 "Mono oblique 24" 206 | 207 | #define sFF13 "Mono bold oblique 9" 208 | #define sFF14 "Mono bold oblique 12" 209 | #define sFF15 "Mono bold oblique 18" 210 | #define sFF16 "Mono bold obl. 24" // Full text line is too big for 480 pixel wide screen 211 | 212 | #define sFF17 "Sans 9" 213 | #define sFF18 "Sans 12" 214 | #define sFF19 "Sans 18" 215 | #define sFF20 "Sans 24" 216 | 217 | #define sFF21 "Sans bold 9" 218 | #define sFF22 "Sans bold 12" 219 | #define sFF23 "Sans bold 18" 220 | #define sFF24 "Sans bold 24" 221 | 222 | #define sFF25 "Sans oblique 9" 223 | #define sFF26 "Sans oblique 12" 224 | #define sFF27 "Sans oblique 18" 225 | #define sFF28 "Sans oblique 24" 226 | 227 | #define sFF29 "Sans bold oblique 9" 228 | #define sFF30 "Sans bold oblique 12" 229 | #define sFF31 "Sans bold oblique 18" 230 | #define sFF32 "Sans bold oblique 24" 231 | 232 | #define sFF33 "Serif 9" 233 | #define sFF34 "Serif 12" 234 | #define sFF35 "Serif 18" 235 | #define sFF36 "Serif 24" 236 | 237 | #define sFF37 "Serif italic 9" 238 | #define sFF38 "Serif italic 12" 239 | #define sFF39 "Serif italic 18" 240 | #define sFF40 "Serif italic 24" 241 | 242 | #define sFF41 "Serif bold 9" 243 | #define sFF42 "Serif bold 12" 244 | #define sFF43 "Serif bold 18" 245 | #define sFF44 "Serif bold 24" 246 | 247 | #define sFF45 "Serif bold italic 9" 248 | #define sFF46 "Serif bold italic 12" 249 | #define sFF47 "Serif bold italic 18" 250 | #define sFF48 "Serif bold italic 24" 251 | 252 | #else // LOAD_GFXFF not defined so setup defaults to prevent error messages 253 | 254 | // >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 255 | // Free fonts are not loaded in User_Setup.h so we must define all as font 1 256 | // to prevent compile error messages 257 | // >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 258 | 259 | #define GFXFF 1 260 | #define GLCD 1 261 | #define FONT2 2 262 | #define FONT4 4 263 | #define FONT6 6 264 | #define FONT7 7 265 | #define FONT8 8 266 | 267 | #define FF0 1 268 | #define FF1 1 269 | #define FF2 1 270 | #define FF3 1 271 | #define FF4 1 272 | #define FF5 1 273 | #define FF6 1 274 | #define FF7 1 275 | #define FF8 1 276 | #define FF9 1 277 | #define FF10 1 278 | #define FF11 1 279 | #define FF12 1 280 | #define FF13 1 281 | #define FF14 1 282 | #define FF15 1 283 | #define FF16 1 284 | #define FF17 1 285 | #define FF18 1 286 | #define FF19 1 287 | #define FF20 1 288 | #define FF21 1 289 | #define FF22 1 290 | #define FF23 1 291 | #define FF24 1 292 | #define FF25 1 293 | #define FF26 1 294 | #define FF27 1 295 | #define FF28 1 296 | #define FF29 1 297 | #define FF30 1 298 | #define FF31 1 299 | #define FF32 1 300 | #define FF33 1 301 | #define FF34 1 302 | #define FF35 1 303 | #define FF36 1 304 | #define FF37 1 305 | #define FF38 1 306 | #define FF39 1 307 | #define FF40 1 308 | #define FF41 1 309 | #define FF42 1 310 | #define FF43 1 311 | #define FF44 1 312 | #define FF45 1 313 | #define FF46 1 314 | #define FF47 1 315 | #define FF48 1 316 | 317 | #define FM9 1 318 | #define FM12 1 319 | #define FM18 1 320 | #define FM24 1 321 | 322 | #define FMB9 1 323 | #define FMB12 1 324 | #define FMB18 1 325 | #define FMB24 1 326 | 327 | #define FMO9 1 328 | #define FMO12 1 329 | #define FMO18 1 330 | #define FMO24 1 331 | 332 | #define FMBO9 1 333 | #define FMBO12 1 334 | #define FMBO18 1 335 | #define FMBO24 1 336 | 337 | #define FSS9 1 338 | #define FSS12 1 339 | #define FSS18 1 340 | #define FSS24 1 341 | 342 | #define FSSB9 1 343 | #define FSSB12 1 344 | #define FSSB18 1 345 | #define FSSB24 1 346 | 347 | #define FSSO9 1 348 | #define FSSO12 1 349 | #define FSSO18 1 350 | #define FSSO24 1 351 | 352 | #define FSSBO9 1 353 | #define FSSBO12 1 354 | #define FSSBO18 1 355 | #define FSSBO24 1 356 | 357 | #define FS9 1 358 | #define FS12 1 359 | #define FS18 1 360 | #define FS24 1 361 | 362 | #define FSI9 1 363 | #define FSI12 1 364 | #define FSI19 1 365 | #define FSI24 1 366 | 367 | #define FSB9 1 368 | #define FSB12 1 369 | #define FSB18 1 370 | #define FSB24 1 371 | 372 | #define FSBI9 1 373 | #define FSBI12 1 374 | #define FSBI18 1 375 | #define FSBI24 1 376 | 377 | #endif // LOAD_GFXFF -------------------------------------------------------------------------------- /ESP32_miner/Lib/Setup300_MiniMiner.h: -------------------------------------------------------------------------------- 1 | // USER DEFINED SETTINGS 2 | // Set driver type, fonts to be loaded, pins used and SPI control method etc 3 | // 4 | // See the User_Setup_Select.h file if you wish to be able to define multiple 5 | // setups and then easily select which setup file is used by the compiler. 6 | // 7 | // If this file is edited correctly then all the library example sketches should 8 | // run without the need to make any more changes for a particular hardware setup! 9 | // Note that some sketches are designed for a particular TFT pixel width/height 10 | 11 | #define USER_SETUP_ID 300 12 | 13 | // ################################################################################## 14 | // 15 | // Section 1. Call up the right driver file and any options for it 16 | // 17 | // ################################################################################## 18 | 19 | // Define STM32 to invoke optimised processor support (only for STM32) 20 | //#define STM32 21 | 22 | // Defining the STM32 board allows the library to optimise the performance 23 | // for UNO compatible "MCUfriend" style shields 24 | //#define NUCLEO_64_TFT 25 | //#define NUCLEO_144_TFT 26 | 27 | // STM32 8 bit parallel only: 28 | // If STN32 Port A or B pins 0-7 are used for 8 bit parallel data bus bits 0-7 29 | // then this will improve rendering performance by a factor of ~8x 30 | //#define STM_PORTA_DATA_BUS 31 | //#define STM_PORTB_DATA_BUS 32 | 33 | // Tell the library to use 8 bit parallel mode (otherwise SPI is assumed) 34 | //#define TFT_PARALLEL_8_BIT 35 | 36 | // Display type - only define if RPi display 37 | //#define RPI_DISPLAY_TYPE // 20MHz maximum SPI 38 | 39 | // Only define one driver, the other ones must be commented out 40 | //#define ILI9341_DRIVER // Generic driver for common displays 41 | //#define ILI9341_2_DRIVER // Alternative ILI9341 driver, see https://github.com/Bodmer/TFT_eSPI/issues/1172 42 | #define ST7735_DRIVER // Define additional parameters below for this display 43 | //#define ILI9163_DRIVER // Define additional parameters below for this display 44 | //#define S6D02A1_DRIVER 45 | //#define RPI_ILI9486_DRIVER // 20MHz maximum SPI 46 | //#define HX8357D_DRIVER 47 | //#define ILI9481_DRIVER 48 | //#define ILI9486_DRIVER 49 | //#define ILI9488_DRIVER // WARNING: Do not connect ILI9488 display SDO to MISO if other devices share the SPI bus (TFT SDO does NOT tristate when CS is high) 50 | //#define ST7789_DRIVER // Full configuration option, define additional parameters below for this display 51 | //#define ST7789_2_DRIVER // Minimal configuration option, define additional parameters below for this display 52 | //#define R61581_DRIVER 53 | //#define RM68140_DRIVER 54 | //#define ST7796_DRIVER 55 | //#define SSD1351_DRIVER 56 | //#define SSD1963_480_DRIVER 57 | //#define SSD1963_800_DRIVER 58 | //#define SSD1963_800ALT_DRIVER 59 | //#define ILI9225_DRIVER 60 | //#define GC9A01_DRIVER 61 | 62 | // Some displays support SPI reads via the MISO pin, other displays have a single 63 | // bi-directional SDA pin and the library will try to read this via the MOSI line. 64 | // To use the SDA line for reading data from the TFT uncomment the following line: 65 | 66 | // #define TFT_SDA_READ // This option is for ESP32 ONLY, tested with ST7789 and GC9A01 display only 67 | 68 | // For ST7735, ST7789 and ILI9341 ONLY, define the colour order IF the blue and red are swapped on your display 69 | // Try ONE option at a time to find the correct colour order for your display 70 | 71 | // #define TFT_RGB_ORDER TFT_RGB // Colour order Red-Green-Blue 72 | // #define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red 73 | 74 | // For M5Stack ESP32 module with integrated ILI9341 display ONLY, remove // in line below 75 | 76 | // #define M5STACK 77 | 78 | // For ST7789, ST7735, ILI9163 and GC9A01 ONLY, define the pixel width and height in portrait orientation 79 | // #define TFT_WIDTH 80 80 | #define TFT_WIDTH 128 81 | // #define TFT_WIDTH 172 // ST7789 172 x 320 82 | // #define TFT_WIDTH 240 // ST7789 240 x 240 and 240 x 320 83 | #define TFT_HEIGHT 160 84 | // #define TFT_HEIGHT 128 85 | // #define TFT_HEIGHT 240 // ST7789 240 x 240 86 | // #define TFT_HEIGHT 320 // ST7789 240 x 320 87 | // #define TFT_HEIGHT 240 // GC9A01 240 x 240 88 | 89 | // For ST7735 ONLY, define the type of display, originally this was based on the 90 | // colour of the tab on the screen protector film but this is not always true, so try 91 | // out the different options below if the screen does not display graphics correctly, 92 | // e.g. colours wrong, mirror images, or stray pixels at the edges. 93 | // Comment out ALL BUT ONE of these options for a ST7735 display driver, save this 94 | // this User_Setup file, then rebuild and upload the sketch to the board again: 95 | 96 | // #define ST7735_INITB 97 | //#define ST7735_GREENTAB 98 | #define ST7735_GREENTAB2 99 | //#define ST7735_GREENTAB3 100 | // #define ST7735_GREENTAB128 // For 128 x 128 display 101 | // #define ST7735_GREENTAB160x80 // For 160 x 80 display (BGR, inverted, 26 offset) 102 | // #define ST7735_REDTAB 103 | // #define ST7735_BLACKTAB 104 | // #define ST7735_REDTAB160x80 // For 160 x 80 display with 24 pixel offset 105 | 106 | // If colours are inverted (white shows as black) then uncomment one of the next 107 | // 2 lines try both options, one of the options should correct the inversion. 108 | 109 | // #define TFT_INVERSION_ON 110 | // #define TFT_INVERSION_OFF 111 | 112 | 113 | // ################################################################################## 114 | // 115 | // Section 2. Define the pins that are used to interface with the display here 116 | // 117 | // ################################################################################## 118 | 119 | // If a backlight control signal is available then define the TFT_BL pin in Section 2 120 | // below. The backlight will be turned ON when tft.begin() is called, but the library 121 | // needs to know if the LEDs are ON with the pin HIGH or LOW. If the LEDs are to be 122 | // driven with a PWM signal or turned OFF/ON then this must be handled by the user 123 | // sketch. e.g. with digitalWrite(TFT_BL, LOW); 124 | 125 | // #define TFT_BL 32 // LED back-light control pin 126 | // #define TFT_BACKLIGHT_ON HIGH // Level to turn ON back-light (HIGH or LOW) 127 | 128 | 129 | 130 | // We must use hardware SPI, a minimum of 3 GPIO pins is needed. 131 | // Typical setup for ESP8266 NodeMCU ESP-12 is : 132 | // 133 | // Display SDO/MISO to NodeMCU pin D6 (or leave disconnected if not reading TFT) 134 | // Display LED to NodeMCU pin VIN (or 5V, see below) 135 | // Display SCK to NodeMCU pin D5 136 | // Display SDI/MOSI to NodeMCU pin D7 137 | // Display DC (RS/AO)to NodeMCU pin D3 138 | // Display RESET to NodeMCU pin D4 (or RST, see below) 139 | // Display CS to NodeMCU pin D8 (or GND, see below) 140 | // Display GND to NodeMCU pin GND (0V) 141 | // Display VCC to NodeMCU 5V or 3.3V 142 | // 143 | // The TFT RESET pin can be connected to the NodeMCU RST pin or 3.3V to free up a control pin 144 | // 145 | // The DC (Data Command) pin may be labelled AO or RS (Register Select) 146 | // 147 | // With some displays such as the ILI9341 the TFT CS pin can be connected to GND if no more 148 | // SPI devices (e.g. an SD Card) are connected, in this case comment out the #define TFT_CS 149 | // line below so it is NOT defined. Other displays such at the ST7735 require the TFT CS pin 150 | // to be toggled during setup, so in these cases the TFT_CS line must be defined and connected. 151 | // 152 | // The NodeMCU D0 pin can be used for RST 153 | // 154 | // 155 | // Note: only some versions of the NodeMCU provide the USB 5V on the VIN pin 156 | // If 5V is not available at a pin you can use 3.3V but backlight brightness 157 | // will be lower. 158 | 159 | 160 | // ###### EDIT THE PIN NUMBERS IN THE LINES FOLLOWING TO SUIT YOUR ESP8266 SETUP ###### 161 | 162 | // For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin designation 163 | #define TFT_CS 15 // Chip select control pin D8 164 | #define TFT_DC 2 // Data Command control pin 165 | #define TFT_RST 4 // Reset pin (could connect to NodeMCU RST, see next line) 166 | //#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V 167 | 168 | //#define TFT_BL PIN_D1 // LED back-light (only for ST7789 with backlight control pin) 169 | 170 | //#define TOUCH_CS PIN_D2 // Chip select pin (T_CS) of touch screen 171 | 172 | //#define TFT_WR PIN_D2 // Write strobe for modified Raspberry Pi TFT only 173 | 174 | 175 | // ###### FOR ESP8266 OVERLAP MODE EDIT THE PIN NUMBERS IN THE FOLLOWING LINES ###### 176 | 177 | // Overlap mode shares the ESP8266 FLASH SPI bus with the TFT so has a performance impact 178 | // but saves pins for other functions. It is best not to connect MISO as some displays 179 | // do not tristate that line when chip select is high! 180 | // On NodeMCU 1.0 SD0=MISO, SD1=MOSI, CLK=SCLK to connect to TFT in overlap mode 181 | // On NodeMCU V3 S0 =MISO, S1 =MOSI, S2 =SCLK 182 | // In ESP8266 overlap mode the following must be defined 183 | 184 | //#define TFT_SPI_OVERLAP 185 | 186 | // In ESP8266 overlap mode the TFT chip select MUST connect to pin D3 187 | //#define TFT_CS PIN_D3 188 | //#define TFT_DC PIN_D5 // Data Command control pin 189 | //#define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line) 190 | //#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V 191 | 192 | 193 | // ###### EDIT THE PIN NUMBERS IN THE LINES FOLLOWING TO SUIT YOUR ESP32 SETUP ###### 194 | 195 | // For ESP32 Dev board (only tested with ILI9341 display) 196 | // The hardware SPI can be mapped to any pins 197 | 198 | //#define TFT_MISO 19 199 | //#define TFT_MOSI 23 200 | //#define TFT_SCLK 18 201 | //#define TFT_CS 15 // Chip select control pin 202 | //#define TFT_DC 2 // Data Command control pin 203 | //#define TFT_RST 4 // Reset pin (could connect to RST pin) 204 | //#define TFT_RST -1 // Set TFT_RST to -1 if display RESET is connected to ESP32 board RST 205 | 206 | // For ESP32 Dev board (only tested with GC9A01 display) 207 | // The hardware SPI can be mapped to any pins 208 | 209 | //#define TFT_MOSI 15 // In some display driver board, it might be written as "SDA" and so on. 210 | //#define TFT_SCLK 14 211 | //#define TFT_CS 5 // Chip select control pin 212 | //#define TFT_DC 27 // Data Command control pin 213 | //#define TFT_RST 33 // Reset pin (could connect to Arduino RESET pin) 214 | //#define TFT_BL 22 // LED back-light 215 | 216 | //#define TOUCH_CS 21 // Chip select pin (T_CS) of touch screen 217 | 218 | //#define TFT_WR 22 // Write strobe for modified Raspberry Pi TFT only 219 | 220 | // For the M5Stack module use these #define lines 221 | //#define TFT_MISO 19 222 | //#define TFT_MOSI 23 223 | //#define TFT_SCLK 18 224 | //#define TFT_CS 14 // Chip select control pin 225 | //#define TFT_DC 27 // Data Command control pin 226 | //#define TFT_RST 33 // Reset pin (could connect to Arduino RESET pin) 227 | //#define TFT_BL 32 // LED back-light (required for M5Stack) 228 | 229 | // ###### EDIT THE PINs BELOW TO SUIT YOUR ESP32 PARALLEL TFT SETUP ###### 230 | 231 | // The library supports 8 bit parallel TFTs with the ESP32, the pin 232 | // selection below is compatible with ESP32 boards in UNO format. 233 | // Wemos D32 boards need to be modified, see diagram in Tools folder. 234 | // Only ILI9481 and ILI9341 based displays have been tested! 235 | 236 | // Parallel bus is only supported for the STM32 and ESP32 237 | // Example below is for ESP32 Parallel interface with UNO displays 238 | 239 | // Tell the library to use 8 bit parallel mode (otherwise SPI is assumed) 240 | //#define TFT_PARALLEL_8_BIT 241 | 242 | // The ESP32 and TFT the pins used for testing are: 243 | //#define TFT_CS 33 // Chip select control pin (library pulls permanently low 244 | //#define TFT_DC 15 // Data Command control pin - must use a pin in the range 0-31 245 | //#define TFT_RST 32 // Reset pin, toggles on startup 246 | 247 | //#define TFT_WR 4 // Write strobe control pin - must use a pin in the range 0-31 248 | //#define TFT_RD 2 // Read strobe control pin 249 | 250 | //#define TFT_D0 12 // Must use pins in the range 0-31 for the data bus 251 | //#define TFT_D1 13 // so a single register write sets/clears all bits. 252 | //#define TFT_D2 26 // Pins can be randomly assigned, this does not affect 253 | //#define TFT_D3 25 // TFT screen update performance. 254 | //#define TFT_D4 17 255 | //#define TFT_D5 16 256 | //#define TFT_D6 27 257 | //#define TFT_D7 14 258 | 259 | // ###### EDIT THE PINs BELOW TO SUIT YOUR STM32 SPI TFT SETUP ###### 260 | 261 | // The TFT can be connected to SPI port 1 or 2 262 | //#define TFT_SPI_PORT 1 // SPI port 1 maximum clock rate is 55MHz 263 | //#define TFT_MOSI PA7 264 | //#define TFT_MISO PA6 265 | //#define TFT_SCLK PA5 266 | 267 | //#define TFT_SPI_PORT 2 // SPI port 2 maximum clock rate is 27MHz 268 | //#define TFT_MOSI PB15 269 | //#define TFT_MISO PB14 270 | //#define TFT_SCLK PB13 271 | 272 | // Can use Ardiuno pin references, arbitrary allocation, TFT_eSPI controls chip select 273 | //#define TFT_CS D5 // Chip select control pin to TFT CS 274 | //#define TFT_DC D6 // Data Command control pin to TFT DC (may be labelled RS = Register Select) 275 | //#define TFT_RST D7 // Reset pin to TFT RST (or RESET) 276 | // OR alternatively, we can use STM32 port reference names PXnn 277 | //#define TFT_CS PE11 // Nucleo-F767ZI equivalent of D5 278 | //#define TFT_DC PE9 // Nucleo-F767ZI equivalent of D6 279 | //#define TFT_RST PF13 // Nucleo-F767ZI equivalent of D7 280 | 281 | //#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to processor reset 282 | // Use an Arduino pin for initial testing as connecting to processor reset 283 | // may not work (pulse too short at power up?) 284 | 285 | // ################################################################################## 286 | // 287 | // Section 3. Define the fonts that are to be used here 288 | // 289 | // ################################################################################## 290 | 291 | // Comment out the #defines below with // to stop that font being loaded 292 | // The ESP8366 and ESP32 have plenty of memory so commenting out fonts is not 293 | // normally necessary. If all fonts are loaded the extra FLASH space required is 294 | // about 17Kbytes. To save FLASH space only enable the fonts you need! 295 | 296 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 297 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 298 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 299 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 300 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:-. 301 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 302 | //#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT 303 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 304 | 305 | // Comment out the #define below to stop the SPIFFS filing system and smooth font code being loaded 306 | // this will save ~20kbytes of FLASH 307 | #define SMOOTH_FONT 308 | 309 | 310 | // ################################################################################## 311 | // 312 | // Section 4. Other options 313 | // 314 | // ################################################################################## 315 | 316 | // For the RP2040 processor define the SPI port channel used (default 0 if undefined) 317 | //#define TFT_SPI_PORT 1 // Set to 0 if SPI0 pins are used, or 1 if spi1 pins used 318 | 319 | // For the STM32 processor define the SPI port channel used (default 1 if undefined) 320 | //#define TFT_SPI_PORT 2 // Set to 1 for SPI port 1, or 2 for SPI port 2 321 | 322 | // Define the SPI clock frequency, this affects the graphics rendering speed. Too 323 | // fast and the TFT driver will not keep up and display corruption appears. 324 | // With an ILI9341 display 40MHz works OK, 80MHz sometimes fails 325 | // With a ST7735 display more than 27MHz may not work (spurious pixels and lines) 326 | // With an ILI9163 display 27 MHz works OK. 327 | 328 | // #define SPI_FREQUENCY 1000000 329 | // #define SPI_FREQUENCY 5000000 330 | // #define SPI_FREQUENCY 10000000 331 | // #define SPI_FREQUENCY 20000000 332 | #define SPI_FREQUENCY 27000000 333 | // #define SPI_FREQUENCY 40000000 334 | // #define SPI_FREQUENCY 55000000 // STM32 SPI1 only (SPI2 maximum is 27MHz) 335 | // #define SPI_FREQUENCY 80000000 336 | 337 | // Optional reduced SPI frequency for reading TFT 338 | #define SPI_READ_FREQUENCY 20000000 339 | 340 | // The XPT2046 requires a lower SPI clock rate of 2.5MHz so we define that here: 341 | #define SPI_TOUCH_FREQUENCY 2500000 342 | 343 | // The ESP32 has 2 free SPI ports i.e. VSPI and HSPI, the VSPI is the default. 344 | // If the VSPI port is in use and pins are not accessible (e.g. TTGO T-Beam) 345 | // then uncomment the following line: 346 | //#define USE_HSPI_PORT 347 | 348 | // Comment out the following #define if "SPI Transactions" do not need to be 349 | // supported. When commented out the code size will be smaller and sketches will 350 | // run slightly faster, so leave it commented out unless you need it! 351 | 352 | // Transaction support is needed to work with SD library but not needed with TFT_SdFat 353 | // Transaction support is required if other SPI devices are connected. 354 | 355 | // Transactions are automatically enabled by the library for an ESP32 (to use HAL mutex) 356 | // so changing it here has no effect 357 | 358 | // #define SUPPORT_TRANSACTIONS 359 | -------------------------------------------------------------------------------- /ESP32_miner/Lib/User_Setup_Select.h: -------------------------------------------------------------------------------- 1 | // This header file contains a list of user setup files and defines which one the 2 | // compiler uses when the IDE performs a Verify/Compile or Upload. 3 | // 4 | // Users can create configurations for different Espressif boards and TFT displays. 5 | // This makes selecting between hardware setups easy by "uncommenting" one line. 6 | 7 | // The advantage of this hardware configuration method is that the examples provided 8 | // with the library should work with different setups immediately without any other 9 | // changes being needed. It also improves the portability of users sketches to other 10 | // hardware configurations and compatible libraries. 11 | // 12 | // Create a shortcut to this file on your desktop to permit quick access for editing. 13 | // Re-compile and upload after making and saving any changes to this file. 14 | 15 | // Customised User_Setup files are stored in the "User_Setups" folder. 16 | 17 | #ifndef USER_SETUP_LOADED // Lets PlatformIO users define settings in 18 | // platformio.ini, see notes in "Tools" folder. 19 | 20 | // Only ONE line below should be uncommented. Add extra lines and files as needed. 21 | 22 | //#include // Default setup is root library folder 23 | 24 | //#include // Setup file configured for my ILI9341 25 | //#include // Setup file configured for my ST7735 26 | //#include // Setup file configured for my ILI9163 27 | //#include // Setup file configured for my S6D02A1 28 | //#include // Setup file configured for my stock RPi TFT 29 | //#include // Setup file configured for my modified RPi TFT 30 | //#include // Setup file configured for my ST7735 128x128 display 31 | //#include // Setup file configured for my ILI9163 128x128 display 32 | //#include // Setup file configured for my ST7735 33 | //#include // Setup file configured for ESP8266 and RPi TFT with touch 34 | 35 | //#include // Setup file configured for ESP32 and RPi TFT with touch 36 | //#include // Setup file for the ESP32 based M5Stack 37 | //#include // Setup file for the ESP32 with parallel bus TFT 38 | //#include // Setup file for the ESP32 with parallel bus TFT 39 | //#include // Setup file configured for HX8357D (untested) 40 | //#include // Setup file for the ESP32 with parallel bus TFT 41 | //#include // Setup file for any Waveshare ePaper display 42 | //#include // Setup file configured for ST7789 43 | 44 | //#include // Setup file configured for RM68140 with parallel bus 45 | 46 | //#include // Setup file for ESP8266 and ILI9488 SPI bus TFT 47 | //#include // Setup file for ESP32 and ILI9488 SPI bus TFT 48 | 49 | //#include // Setup file for ESP32 and TTGO T4 version 1.2 50 | //#include // Setup file for ESP32 and TTGO T4 version 1.3 51 | //#include // Setup file for ESP32 and TTGO TM ST7789 SPI bus TFT 52 | //#include // Setup file configured for ST7789 240 x 240 53 | //#include // Setup file for ESP32 and TTGO T-Display ST7789V SPI bus TFT 54 | //#include // Setup file for ESP32 and TTGO T-Wristband ST7735 SPI bus TFT 55 | 56 | //#include // ESP32 RPi MHS-4.0 inch Display-B 57 | //#include // ESP8266 RPi MHS-4.0 inch Display-B 58 | 59 | //#include // Setup for Nucleo board 60 | //#include // Setup for Nucleo board and parallel display 61 | //#include // Setup for Nucleo board and parallel display 62 | //#include // Setup for "Blue/Black Pill" 63 | 64 | //#include // Setup for Nucleo board 65 | 66 | //#include // Setup for Nucleo board and parallel display 67 | //#include // Setup for STM32 port A parallel display 68 | 69 | //#include // Setup file configured for ESP32 and RPi ST7796 TFT with touch 70 | 71 | //#include // Setup file configured for my ST7735S 80x160 72 | //#include // Setup file for ESP32 and TTGO T-CameraPlus ST7789 SPI bus TFT 240x240 73 | //#include // Setup file for ESP32 and TTGO T-Watch ST7789 SPI bus TFT 240x240 74 | 75 | //#include // Setup file configured for ST7735 128 x 128 animated eyes 76 | 77 | //#include // Setup file for ESP32 and SSD1963 TFT display 78 | 79 | //#include // Setup file for LilyGo LilyPi with ILI9481 display 80 | //#include // Setup file for LilyGo LilyPi with ST7796 display 81 | 82 | //#include // Setup file for RP2040 with SPI ILI9341 83 | //#include // Setup file for RP2040 with PIO SPI ILI9341 84 | //#include // Setup file for RP2040 with SPI ILI9341 85 | 86 | //#include // Setup file for ESP32 S2 with SPI ILI9341 87 | 88 | //#include // Setup file for ESP32 S2 with ST7789 89 | //#include // Setup file for ESP32 with ST7789 1.47" 172x320 90 | 91 | //#include 92 | //#include 93 | //#include 94 | //#include 95 | //#include 96 | //#include // Setup file for Raspberry Pi Pico with SPI PIO interface and ILI9341 97 | 98 | //#include // Setup file for ESP8266 and ST7789 135 x 240 TFT 99 | 100 | //#include // Setup file for ESP32 and Lilygo TTV ST7789 SPI bus TFT 135x240 101 | //#include // Setup file for Lilygo T-Display RP2040 (ST7789 on SPI bus with 135x240 TFT) 102 | 103 | //#include // Setup file for ESP32 and GC9A01 240 x 240 TFT 104 | 105 | //#include // Setup file for ESP32 based WT32_SC01 from Seeed 106 | 107 | //#include // Setup file for ESP32/ESP8266 based SSD1351 128x128 1.5inch OLED display 108 | 109 | //#include // Setup file for ESP32/ESP8266 based ST7789 240X280 1.69inch TFT 110 | 111 | //#include 112 | 113 | #include 114 | 115 | #endif // USER_SETUP_LOADED 116 | 117 | 118 | 119 | ///////////////////////////////////////////////////////////////////////////////////// 120 | // // 121 | // DON'T TINKER WITH ANY OF THE FOLLOWING LINES, THESE ADD THE TFT DRIVERS // 122 | // AND ESP8266 PIN DEFINITONS, THEY ARE HERE FOR BODMER'S CONVENIENCE! // 123 | // // 124 | ///////////////////////////////////////////////////////////////////////////////////// 125 | 126 | 127 | // Identical looking TFT displays may have a different colour ordering in the 16 bit colour 128 | #define TFT_BGR 0 // Colour order Blue-Green-Red 129 | #define TFT_RGB 1 // Colour order Red-Green-Blue 130 | 131 | // Legacy setup support, RPI_DISPLAY_TYPE replaces RPI_DRIVER 132 | #if defined (RPI_DRIVER) 133 | #if !defined (RPI_DISPLAY_TYPE) 134 | #define RPI_DISPLAY_TYPE 135 | #endif 136 | #endif 137 | 138 | // Legacy setup support, RPI_ILI9486_DRIVER form is deprecated 139 | // Instead define RPI_DISPLAY_TYPE and also define driver (e.g. ILI9486_DRIVER) 140 | #if defined (RPI_ILI9486_DRIVER) 141 | #if !defined (ILI9486_DRIVER) 142 | #define ILI9486_DRIVER 143 | #endif 144 | #if !defined (RPI_DISPLAY_TYPE) 145 | #define RPI_DISPLAY_TYPE 146 | #endif 147 | #endif 148 | 149 | // Invoke 18 bit colour for selected displays 150 | #if !defined (RPI_DISPLAY_TYPE) && !defined (TFT_PARALLEL_8_BIT) && !defined (ESP32_PARALLEL) 151 | #if defined (ILI9481_DRIVER) || defined (ILI9486_DRIVER) || defined (ILI9488_DRIVER) 152 | #define SPI_18BIT_DRIVER 153 | #endif 154 | #endif 155 | 156 | // Load the right driver definition - do not tinker here ! 157 | #if defined (ILI9341_DRIVER) || defined(ILI9341_2_DRIVER) || defined (ILI9342_DRIVER) 158 | #include 159 | #define TFT_DRIVER 0x9341 160 | #elif defined (ST7735_DRIVER) 161 | #include 162 | #define TFT_DRIVER 0x7735 163 | #elif defined (ILI9163_DRIVER) 164 | #include 165 | #define TFT_DRIVER 0x9163 166 | #elif defined (S6D02A1_DRIVER) 167 | #include 168 | #define TFT_DRIVER 0x6D02 169 | #elif defined (ST7796_DRIVER) 170 | #include "TFT_Drivers/ST7796_Defines.h" 171 | #define TFT_DRIVER 0x7796 172 | #elif defined (ILI9486_DRIVER) 173 | #include 174 | #define TFT_DRIVER 0x9486 175 | #elif defined (ILI9481_DRIVER) 176 | #include 177 | #define TFT_DRIVER 0x9481 178 | #elif defined (ILI9488_DRIVER) 179 | #include 180 | #define TFT_DRIVER 0x9488 181 | #elif defined (HX8357D_DRIVER) 182 | #include "TFT_Drivers/HX8357D_Defines.h" 183 | #define TFT_DRIVER 0x8357 184 | #elif defined (EPD_DRIVER) 185 | #include "TFT_Drivers/EPD_Defines.h" 186 | #define TFT_DRIVER 0xE9D 187 | #elif defined (ST7789_DRIVER) 188 | #include "TFT_Drivers/ST7789_Defines.h" 189 | #define TFT_DRIVER 0x7789 190 | #elif defined (R61581_DRIVER) 191 | #include "TFT_Drivers/R61581_Defines.h" 192 | #define TFT_DRIVER 0x6158 193 | #elif defined (ST7789_2_DRIVER) 194 | #include "TFT_Drivers/ST7789_2_Defines.h" 195 | #define TFT_DRIVER 0x778B 196 | #elif defined (RM68140_DRIVER) 197 | #include "TFT_Drivers/RM68140_Defines.h" 198 | #define TFT_DRIVER 0x6814 199 | #elif defined (SSD1351_DRIVER) 200 | #include "TFT_Drivers/SSD1351_Defines.h" 201 | #define TFT_DRIVER 0x1351 202 | #elif defined (SSD1963_480_DRIVER) 203 | #include "TFT_Drivers/SSD1963_Defines.h" 204 | #define TFT_DRIVER 0x1963 205 | #elif defined (SSD1963_800_DRIVER) 206 | #include "TFT_Drivers/SSD1963_Defines.h" 207 | #define TFT_DRIVER 0x1963 208 | #elif defined (SSD1963_800ALT_DRIVER) 209 | #include "TFT_Drivers/SSD1963_Defines.h" 210 | #define TFT_DRIVER 0x1963 211 | #elif defined (SSD1963_800BD_DRIVER) 212 | #include "TFT_Drivers/SSD1963_Defines.h" 213 | #define TFT_DRIVER 0x1963 214 | #elif defined (GC9A01_DRIVER) 215 | #include "TFT_Drivers/GC9A01_Defines.h" 216 | #define TFT_DRIVER 0x9A01 217 | #elif defined (ILI9225_DRIVER) 218 | #include "TFT_Drivers/ILI9225_Defines.h" 219 | #define TFT_DRIVER 0x9225 220 | #elif defined (RM68120_DRIVER) 221 | #include "TFT_Drivers/RM68120_Defines.h" 222 | #define TFT_DRIVER 0x6812 223 | // <<<<<<<<<<<<<<<<<<<<<<<< ADD NEW DRIVER HERE 224 | // XYZZY_init.h and XYZZY_rotation.h must also be added in TFT_eSPI.cpp 225 | #elif defined (XYZZY_DRIVER) 226 | #include "TFT_Drivers/XYZZY_Defines.h" 227 | #define TFT_DRIVER 0x0000 228 | #else 229 | #define TFT_DRIVER 0x0000 230 | #endif 231 | 232 | // These are the pins for ESP8266 boards 233 | // Name GPIO NodeMCU Function 234 | #define PIN_D0 16 // GPIO16 WAKE 235 | #define PIN_D1 5 // GPIO5 User purpose 236 | #define PIN_D2 4 // GPIO4 User purpose 237 | #define PIN_D3 0 // GPIO0 Low on boot means enter FLASH mode 238 | #define PIN_D4 2 // GPIO2 TXD1 (must be high on boot to go to UART0 FLASH mode) 239 | #define PIN_D5 14 // GPIO14 HSCLK 240 | #define PIN_D6 12 // GPIO12 HMISO 241 | #define PIN_D7 13 // GPIO13 HMOSI RXD2 242 | #define PIN_D8 15 // GPIO15 HCS TXD0 (must be low on boot to enter UART0 FLASH mode) 243 | #define PIN_D9 3 // RXD0 244 | #define PIN_D10 1 // TXD0 245 | 246 | #define PIN_MOSI 8 // SD1 FLASH and overlap mode 247 | #define PIN_MISO 7 // SD0 248 | #define PIN_SCLK 6 // CLK 249 | #define PIN_HWCS 0 // D3 250 | 251 | #define PIN_D11 9 // SD2 252 | #define PIN_D12 10 // SD4 253 | -------------------------------------------------------------------------------- /ESP32_miner/Lib/images.h: -------------------------------------------------------------------------------- 1 | // Icon width and height 2 | const uint16_t btc_Width = 60; 3 | const uint16_t btc_Height = 60; 4 | 5 | const unsigned short bitcoin[0xE10] PROGMEM ={ 6 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0010 (16) 7 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0020 (32) 8 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0030 (48) 9 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0040 (64) 10 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0050 (80) 11 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD05, 0xF506, 0xFD06, 0xF525, 0xFCC6, 0x0000, 0x0000, 0x0000, // 0x0060 (96) 12 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0070 (112) 13 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0080 (128) 14 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCE7, 0xF506, // 0x0090 (144) 15 | 0xF506, 0xFD25, 0xF506, 0xF505, 0xFD05, 0xFD05, 0xFD25, 0xFD25, 0xFD25, 0xF525, 0xF506, 0xFD25, 0xF506, 0xF526, 0x0000, 0x0000, // 0x00A0 (160) 16 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00B0 (176) 17 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00C0 (192) 18 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x79E7, 0xF505, 0xFD26, 0xFD05, 0xFD25, 0xFD66, 0xFD66, 0xFD65, 0xFD65, // 0x00D0 (208) 19 | 0xFD45, 0xFD45, 0xFD45, 0xFD45, 0xFD45, 0xFD65, 0xFD66, 0xFD86, 0xFD45, 0xFD25, 0xFD25, 0xF505, 0xECC6, 0x0000, 0x0000, 0x0000, // 0x00E0 (224) 20 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00F0 (240) 21 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0100 (256) 22 | 0x0000, 0x9BA6, 0xECE5, 0xF505, 0xFD25, 0xFD66, 0xFD45, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD46, 0xFD46, 0xFD46, 0xFD46, 0xFD46, // 0x0110 (272) 23 | 0xFD46, 0xFD26, 0xFD25, 0xFD25, 0xFD25, 0xFD45, 0xFD65, 0xFD66, 0xF505, 0xF4E5, 0xDC85, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0120 (288) 24 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0130 (304) 25 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0xE485, 0xF505, 0xFD65, 0xFD45, // 0x0140 (320) 26 | 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD46, 0xFD46, 0xFD46, 0xFD46, 0xFD46, 0xFD46, 0xFD46, 0xFD46, 0xFD46, 0xFD46, 0xFD46, 0xFD46, // 0x0150 (336) 27 | 0xFD45, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD65, 0xFD05, 0xECE5, 0xCC25, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0160 (352) 28 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0170 (368) 29 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xCC25, 0xECE5, 0xFD45, 0xFD45, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, // 0x0180 (384) 30 | 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, // 0x0190 (400) 31 | 0xFD25, 0xFD25, 0xFD25, 0xFD65, 0xF505, 0xE4A5, 0x72A3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01A0 (416) 32 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01B0 (432) 33 | 0x0000, 0xDC65, 0xF505, 0xFD65, 0xFD05, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, // 0x01C0 (448) 34 | 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD05, // 0x01D0 (464) 35 | 0xFD25, 0xFD65, 0xECC5, 0xBBC4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01E0 (480) 36 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x69E5, 0xE485, 0xFD45, 0xFD25, 0xFD05, // 0x01F0 (496) 37 | 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, // 0x0200 (512) 38 | 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD05, 0xFD05, 0xFD45, 0xF4E4, // 0x0210 (528) 39 | 0xCC24, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0220 (544) 40 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9304, 0xE464, 0xFD45, 0xFD05, 0xFD05, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, // 0x0230 (560) 41 | 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, // 0x0240 (576) 42 | 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD25, 0xFD05, 0xFD25, 0xF4E5, 0xCC04, 0x0000, 0x0000, // 0x0250 (592) 43 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0260 (608) 44 | 0x0000, 0x82A3, 0xE484, 0xFD45, 0xFCE5, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, // 0x0270 (624) 45 | 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFCE4, 0xF4E3, 0xFCE4, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, // 0x0280 (640) 46 | 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xCC04, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0290 (656) 47 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x28A2, 0xDC64, 0xFD45, 0xFCE4, // 0x02A0 (672) 48 | 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, // 0x02B0 (688) 49 | 0xF4E4, 0xFDED, 0xFE30, 0xF569, 0xF505, 0xFD05, 0xFD05, 0xFD04, 0xFD04, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, // 0x02C0 (704) 50 | 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFCE5, 0xFD04, 0xF4E4, 0xC3C4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x02D0 (720) 51 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC44, 0xFD45, 0xFCE4, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, // 0x02E0 (736) 52 | 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xF4C4, 0xFF59, 0xFFFF, 0xFFDF, // 0x02F0 (752) 53 | 0xFE93, 0xF4C3, 0xFD05, 0xF527, 0xF526, 0xF4C3, 0xFCE4, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, // 0x0300 (768) 54 | 0xFD05, 0xFCE5, 0xFD04, 0xF4C4, 0xB384, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0310 (784) 55 | 0x0000, 0x0000, 0x0000, 0xCBE4, 0xFD04, 0xFCE4, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, // 0x0320 (800) 56 | 0xFD05, 0xFD04, 0xFD04, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xF4E4, 0xED27, 0xFFBD, 0xFFFF, 0xFFFF, 0xF651, 0xF482, 0xF4E5, 0xFF39, // 0x0330 (816) 57 | 0xFF7B, 0xFED5, 0xFDAB, 0xF4E4, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFCE4, 0xFD24, // 0x0340 (832) 58 | 0xEC84, 0x8283, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xA343, 0xF4A4, // 0x0350 (848) 59 | 0xFD04, 0xFCE4, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFCE4, 0xF4C3, 0xF4C3, // 0x0360 (864) 60 | 0xFCC3, 0xFCE4, 0xFD04, 0xF4A3, 0xF5AC, 0xFFFF, 0xFFFF, 0xFFFF, 0xED4A, 0xEC82, 0xF528, 0xFFFF, 0xFFFF, 0xFFFF, 0xF60F, 0xF4A3, // 0x0370 (880) 61 | 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFD05, 0xFCE4, 0xFD24, 0xDC24, 0x0000, 0x0000, // 0x0380 (896) 62 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC44, 0xFD24, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, // 0x0390 (912) 63 | 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xF4C3, 0xFE0F, 0xFF18, 0xFE30, 0xF58A, 0xF506, 0xF4C3, 0xEC61, // 0x03A0 (928) 64 | 0xF652, 0xFFFF, 0xFFFF, 0xFF7C, 0xE4C5, 0xEC82, 0xF5CD, 0xFFFF, 0xFFFF, 0xFFDF, 0xED29, 0xF4A3, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, // 0x03B0 (944) 65 | 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xBBA3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x03C0 (960) 66 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBBA3, 0xFCE4, 0xFCC4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, // 0x03D0 (976) 67 | 0xFCE4, 0xFCE4, 0xFCE4, 0xF4E4, 0xF4A3, 0xFEF7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF9C, 0xFEF6, 0xF60F, 0xFF3A, 0xFFFF, 0xFFFF, 0xF6B5, // 0x03E0 (992) 68 | 0xE420, 0xEC61, 0xF673, 0xFFFF, 0xFFFF, 0xFF5B, 0xE4A4, 0xF4C4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, // 0x03F0 (1008) 69 | 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFD04, 0xE464, 0x4922, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0400 (1024) 70 | 0x3922, 0xE444, 0xFD04, 0xFCC4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xF4C3, // 0x0410 (1040) 71 | 0xED06, 0xFFDE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF718, 0xEDAC, 0xED28, 0xFF3A, 0xFFFF, // 0x0420 (1056) 72 | 0xFFFF, 0xF694, 0xEC62, 0xF4E4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, // 0x0430 (1072) 73 | 0xFCE4, 0xFCC4, 0xFD04, 0xC3C3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBBA3, 0xFCE4, 0xFCC4, 0xFCE4, // 0x0440 (1088) 74 | 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xF4C3, 0xECE7, 0xF6D7, 0xFF9D, 0xFFFF, // 0x0450 (1104) 75 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDE, 0xFFFF, 0xFFFF, 0xFFFF, 0xEDCE, 0xEC40, 0xF4A3, // 0x0460 (1120) 76 | 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCC4, 0xFCE4, 0xE463, // 0x0470 (1136) 77 | 0x49A2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xE443, 0xFD04, 0xFCC4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, // 0x0480 (1152) 78 | 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xF4C4, 0xECA3, 0xE443, 0xDC65, 0xDD4C, 0xFF7C, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0490 (1168) 79 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF7C, 0xF672, 0xF548, 0xF4A2, 0xF4C3, 0xFCE4, 0xFCE4, // 0x04A0 (1184) 80 | 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCE4, 0xFCC4, 0xFCC4, 0xBB83, 0x0000, 0x0000, 0x0000, // 0x04B0 (1200) 81 | 0x0000, 0x0000, 0x0000, 0x9B03, 0xF483, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, // 0x04C0 (1216) 82 | 0xFCC4, 0xFCC4, 0xFCC4, 0xF4C4, 0xF4C4, 0xECA3, 0xEC63, 0xDBE0, 0xE5AE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x04D0 (1232) 83 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDE, 0xFE73, 0xF4E5, 0xF4A2, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, // 0x04E0 (1248) 84 | 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFD04, 0xDC23, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xCBE3, // 0x04F0 (1264) 85 | 0xFCE4, 0xFCA4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, // 0x0500 (1280) 86 | 0xFCC4, 0xF4C4, 0xF4C4, 0xEC42, 0xEDF0, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEE95, 0xE5AF, 0xEEB7, 0xFF9C, 0xFFFF, 0xFFFF, // 0x0510 (1296) 87 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF5A, 0xF507, 0xF4A2, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, // 0x0520 (1312) 88 | 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC3, 0xEC63, 0x7221, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xE423, 0xFCE3, 0xFCC3, 0xFCC4, 0xFCC4, // 0x0530 (1328) 89 | 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xF4C3, 0xEC62, // 0x0540 (1344) 90 | 0xF6F7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE52A, 0xD3A0, 0xDC02, 0xDC65, 0xE56D, 0xF719, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0550 (1360) 91 | 0xFFFF, 0xFFFF, 0xFF5A, 0xF4C4, 0xF4A3, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCC4, 0xFCA3, // 0x0560 (1376) 92 | 0xFCC3, 0xC3A3, 0x0000, 0x0000, 0x0000, 0x0000, 0x69E1, 0xEC63, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, // 0x0570 (1392) 93 | 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xF4A3, 0xECC5, 0xFF9C, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0580 (1408) 94 | 0xFFFF, 0xFFBD, 0xE4A6, 0xEC62, 0xEC83, 0xEC62, 0xDC01, 0xD403, 0xEE53, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF60F, // 0x0590 (1424) 95 | 0xF462, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCC3, 0xFCA3, 0xFCE3, 0xD3E3, 0x0000, 0x0000, // 0x05A0 (1440) 96 | 0x0000, 0x0000, 0xC3A3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, // 0x05B0 (1456) 97 | 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xF462, 0xED4A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF718, 0xE442, 0xF4A3, // 0x05C0 (1472) 98 | 0xF4A3, 0xF4A3, 0xF4A3, 0xEC42, 0xDC02, 0xF719, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFEF8, 0xEC62, 0xF4A3, 0xFCA3, 0xFCA3, // 0x05D0 (1488) 99 | 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCC3, 0xE423, 0x18E0, 0x0000, 0x0000, 0x0000, 0xCBC2, 0xFCE3, // 0x05E0 (1504) 100 | 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, // 0x05F0 (1520) 101 | 0xFCA3, 0xFCA3, 0xF461, 0xF610, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEE32, 0xEC21, 0xF4A3, 0xFCA3, 0xFCA3, 0xFCA3, 0xF4A3, // 0x0600 (1536) 102 | 0xE401, 0xEE53, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF5A, 0xEC63, 0xF4A3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, // 0x0610 (1552) 103 | 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xF443, 0x5180, 0x0000, 0x0000, 0x0000, 0xCBA2, 0xFCC3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, // 0x0620 (1568) 104 | 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xF4A3, 0xEC42, 0xF6F7, // 0x0630 (1584) 105 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xED2A, 0xEC21, 0xF4A3, 0xFCA3, 0xFCA3, 0xFCA3, 0xF483, 0xEC21, 0xF6D6, 0xFFFF, 0xFFFF, // 0x0640 (1600) 106 | 0xFFFF, 0xFFFF, 0xFFFF, 0xF6F8, 0xEC62, 0xF4A3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, // 0x0650 (1616) 107 | 0xFCA3, 0xEC43, 0x8281, 0x0000, 0x0000, 0x0000, 0xDBE3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, // 0x0660 (1632) 108 | 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xF482, 0xECA5, 0xFF9C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0670 (1648) 109 | 0xFFDE, 0xED4B, 0xEC83, 0xF461, 0xF461, 0xF461, 0xF461, 0xF440, 0xF58C, 0xFFDE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF631, // 0x0680 (1664) 110 | 0xEC21, 0xF4A3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFC83, 0xFC83, 0xBB62, 0x0000, // 0x0690 (1680) 111 | 0x0000, 0x0000, 0xF443, 0xFCA3, 0xFC83, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, // 0x06A0 (1696) 112 | 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xF461, 0xED29, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF5A, 0xFEB5, // 0x06B0 (1712) 113 | 0xFE51, 0xF5EF, 0xF60F, 0xFEB5, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE4E8, 0xEC41, 0xF483, 0xFCA3, 0xFCA3, // 0x06C0 (1728) 114 | 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFC83, 0xFCA3, 0xDBE3, 0x0000, 0x0000, 0x0000, 0xF442, 0xFCA3, // 0x06D0 (1744) 115 | 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, // 0x06E0 (1760) 116 | 0xF483, 0xF441, 0xF610, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x06F0 (1776) 117 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEDF0, 0xE401, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, // 0x0700 (1792) 118 | 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xFCC3, 0xDBE2, 0x0000, 0x0000, 0x0000, 0xF442, 0xFCA2, 0xF483, 0xF483, 0xF483, 0xF483, // 0x0710 (1808) 119 | 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xEC41, 0xF6D7, 0xFFFF, // 0x0720 (1824) 120 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0730 (1840) 121 | 0xF739, 0xE58D, 0xDC01, 0xEC62, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, // 0x0740 (1856) 122 | 0xF483, 0xFCA3, 0xDBE2, 0x0000, 0x0000, 0x0000, 0xF442, 0xFC82, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, // 0x0750 (1872) 123 | 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF462, 0xEC84, 0xFF9C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFBD, // 0x0760 (1888) 124 | 0xDCA9, 0xDD0A, 0xEE12, 0xF719, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFBE, 0xE54C, 0xDBA0, 0xEC42, 0xF483, // 0x0770 (1904) 125 | 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xFC62, 0xFCA3, 0xDBE2, 0x0000, // 0x0780 (1920) 126 | 0x0000, 0x0000, 0xE402, 0xFC82, 0xF463, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, // 0x0790 (1936) 127 | 0xF483, 0xF483, 0xF483, 0xF483, 0xF441, 0xED29, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF6F8, 0xDBC1, 0xDBC0, 0xDBC0, 0xD3E2, // 0x07A0 (1952) 128 | 0xDCA8, 0xEE12, 0xFFBE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF610, 0xF421, 0xF462, 0xF483, 0xF483, 0xF483, 0xF483, // 0x07B0 (1968) 129 | 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xFC62, 0xFC62, 0xBB62, 0x0000, 0x0000, 0x0000, 0xCB82, 0xFC82, // 0x07C0 (1984) 130 | 0xF462, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, // 0x07D0 (2000) 131 | 0xF420, 0xF5F0, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEE11, 0xE3E0, 0xF442, 0xEC42, 0xEC22, 0xE3E1, 0xDBA0, 0xDC67, 0xF719, // 0x07E0 (2016) 132 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF58C, 0xF421, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, // 0x07F0 (2032) 133 | 0xF463, 0xF463, 0xF463, 0xF463, 0xFC62, 0xEC02, 0x9281, 0x0000, 0x0000, 0x0000, 0xC362, 0xFC82, 0xF442, 0xF463, 0xF463, 0xF463, // 0x0800 (2048) 134 | 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF462, 0xF442, 0xF462, 0xF462, 0xEC01, 0xF6D6, 0xFFFF, 0xFFFF, // 0x0810 (2064) 135 | 0xFFFF, 0xFFFF, 0xFFFF, 0xED2B, 0xEC01, 0xF463, 0xF463, 0xF463, 0xF463, 0xEC42, 0xE3C0, 0xDC45, 0xFF9C, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0820 (2080) 136 | 0xFFFF, 0xFFFF, 0xFF3A, 0xEC42, 0xF462, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, 0xF463, // 0x0830 (2096) 137 | 0xFC62, 0xEC02, 0x59A1, 0x0000, 0x0000, 0x0000, 0xCB62, 0xFC62, 0xFC42, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, // 0x0840 (2112) 138 | 0xF462, 0xF462, 0xF462, 0xF462, 0xF442, 0xF4C6, 0xF463, 0xF3E0, 0xEC64, 0xFF9C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFBE, 0xE465, // 0x0850 (2128) 139 | 0xF421, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF442, 0xE3A0, 0xEE54, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDE, 0xECA6, // 0x0860 (2144) 140 | 0xF421, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xFC62, 0xEC02, 0x18C0, 0x0000, // 0x0870 (2160) 141 | 0x0000, 0x0000, 0x7A21, 0xEC02, 0xFC42, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF421, // 0x0880 (2176) 142 | 0xF4E7, 0xFFBD, 0xFF5A, 0xF673, 0xFEF8, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF6F8, 0xE402, 0xF442, 0xF462, 0xF462, 0xF462, // 0x0890 (2192) 143 | 0xF462, 0xF462, 0xF442, 0xE3C0, 0xF653, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDE, 0xECC7, 0xF421, 0xF462, 0xF462, 0xF462, // 0x08A0 (2208) 144 | 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF462, 0xF442, 0xFC62, 0xD382, 0x0000, 0x0000, 0x0000, 0x0000, 0x1040, 0xE3C2, // 0x08B0 (2224) 145 | 0xFC42, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xEBE0, 0xF652, 0xFFFF, 0xFFFF, 0xFFFF, // 0x08C0 (2240) 146 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEDF1, 0xE380, 0xF400, 0xF421, 0xF442, 0xF442, 0xF442, 0xF442, 0xF400, 0xEC44, // 0x08D0 (2256) 147 | 0xFF7B, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFBD, 0xEC65, 0xF421, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, // 0x08E0 (2272) 148 | 0xF442, 0xF442, 0xF442, 0xF442, 0xFC62, 0xC342, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xCB62, 0xFC62, 0xF422, 0xF442, 0xF442, // 0x08F0 (2288) 149 | 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF421, 0xECA6, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0900 (2304) 150 | 0xFFFF, 0xFFFF, 0xFF7B, 0xF653, 0xF56C, 0xF4C7, 0xF464, 0xF422, 0xF401, 0xF442, 0xF4C7, 0xFED7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0910 (2320) 151 | 0xFFFF, 0xFFFF, 0xF6F8, 0xE3E2, 0xF422, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xFC22, // 0x0920 (2336) 152 | 0xEC02, 0x7A01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xA2A1, 0xFC22, 0xFC22, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, // 0x0930 (2352) 153 | 0xF442, 0xF442, 0xF401, 0xECC8, 0xF6D7, 0xFF9D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0940 (2368) 154 | 0xFFFF, 0xFFDE, 0xFF7C, 0xFF3A, 0xFF39, 0xFF5A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xED8E, 0xEBC0, // 0x0950 (2384) 155 | 0xF422, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF442, 0xF422, 0xFC42, 0xDBA2, 0x0000, 0x0000, 0x0000, // 0x0960 (2400) 156 | 0x0000, 0x0000, 0x0000, 0x2081, 0xE3A2, 0xFC42, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xEBE1, // 0x0970 (2416) 157 | 0xDBA1, 0xDC04, 0xDCA9, 0xE5D1, 0xF6B7, 0xFF9D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0980 (2432) 158 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF7C, 0xE404, 0xEC01, 0xF422, 0xF422, 0xF422, 0xF422, // 0x0990 (2448) 159 | 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xFC42, 0xBB02, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x09A0 (2464) 160 | 0xBB01, 0xFC42, 0xF402, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xEC02, 0xE3C1, 0xE3A0, 0xDB60, // 0x09B0 (2480) 161 | 0xD360, 0xDC47, 0xFFBD, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x09C0 (2496) 162 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE4EA, 0xE3A0, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, // 0x09D0 (2512) 163 | 0xF422, 0xF422, 0xFC22, 0xEBC2, 0x4940, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5161, 0xEBA2, 0xFC22, 0xF402, // 0x09E0 (2528) 164 | 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF402, 0xF402, 0xEC02, 0xE3A0, 0xE4A9, 0xFFFF, 0xFFFF, // 0x09F0 (2544) 165 | 0xFFFF, 0xDCEC, 0xDCCB, 0xEE54, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF7C, // 0x0A00 (2560) 166 | 0xE50B, 0xDB80, 0xEC02, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF402, 0xFC42, 0xC321, // 0x0A10 (2576) 167 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBB01, 0xFC22, 0xF402, 0xF422, 0xF422, 0xF422, 0xF422, // 0x0A20 (2592) 168 | 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF402, 0xEBA0, 0xF5F1, 0xFFFF, 0xFFFF, 0xFF7C, 0xDBC3, 0xD300, 0xE4AA, // 0x0A30 (2608) 169 | 0xFFFF, 0xFFFF, 0xFFDF, 0xEE13, 0xEE34, 0xF6F8, 0xF73B, 0xF75B, 0xF73A, 0xEE96, 0xE56F, 0xDC04, 0xDB80, 0xEBE2, 0xF402, 0xF422, // 0x0A40 (2624) 170 | 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF422, 0xF402, 0xFC02, 0xEBA2, 0x59A1, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A50 (2640) 171 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x30E0, 0xE381, 0xFC22, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, // 0x0A60 (2656) 172 | 0xF402, 0xF402, 0xF402, 0xF402, 0xEBC1, 0xF6D7, 0xFFFF, 0xFFFF, 0xF696, 0xE380, 0xE380, 0xF612, 0xFFFF, 0xFFFF, 0xF73B, 0xD361, // 0x0A70 (2672) 173 | 0xD340, 0xD381, 0xD382, 0xD3A2, 0xD381, 0xDB61, 0xDB60, 0xE3A1, 0xEBE2, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, // 0x0A80 (2688) 174 | 0xF402, 0xF402, 0xF402, 0xF402, 0xF3E2, 0xFC22, 0xB301, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A90 (2704) 175 | 0x0000, 0x0000, 0x9A81, 0xFBE2, 0xFBE2, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF3E1, // 0x0AA0 (2720) 176 | 0xEC45, 0xFFDF, 0xFFFF, 0xFFFF, 0xED8F, 0xE360, 0xEBC2, 0xFF18, 0xFFFF, 0xFFFF, 0xF675, 0xE380, 0xEBC2, 0xEBC2, 0xEBC1, 0xEBC1, // 0x0AB0 (2736) 177 | 0xEBC1, 0xEBE2, 0xEBE2, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF3E2, // 0x0AC0 (2752) 178 | 0xFC22, 0xDB61, 0x1880, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xCB21, // 0x0AD0 (2768) 179 | 0xFC22, 0xF3E2, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF3C1, 0xEC45, 0xF6B7, 0xFF9C, 0xFFFF, // 0x0AE0 (2784) 180 | 0xE4A8, 0xEB80, 0xEC45, 0xFFDE, 0xFFFF, 0xFFFF, 0xED4D, 0xEB80, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF402, 0xF402, // 0x0AF0 (2800) 181 | 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF402, 0xF3E2, 0xFBE2, 0xEBA2, 0x8221, 0x0000, 0x0000, // 0x0B00 (2816) 182 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x28A0, 0xDB61, 0xFC02, 0xF3C2, 0xF3E2, // 0x0B10 (2832) 183 | 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xEBC1, 0xDB61, 0xDBE4, 0xE489, 0xE3E3, 0xEB80, 0xED0B, 0xFFFF, // 0x0B20 (2848) 184 | 0xFFFF, 0xFFFF, 0xE467, 0xEBA0, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, // 0x0B30 (2864) 185 | 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xFBE2, 0xFBE2, 0xAAA1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B40 (2880) 186 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x71C1, 0xE381, 0xFBE2, 0xF3C2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, // 0x0B50 (2896) 187 | 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xEBC1, 0xE381, 0xE380, 0xEBC1, 0xF3C1, 0xEBE3, 0xE489, 0xEDB1, 0xEE13, 0xE3C3, 0xF3C1, // 0x0B60 (2912) 188 | 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, // 0x0B70 (2928) 189 | 0xF3E2, 0xFBC2, 0xFC02, 0xC301, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B80 (2944) 190 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8201, 0xEB81, 0xFBE2, 0xF3C2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, // 0x0B90 (2960) 191 | 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xEBC1, 0xE360, 0xDB40, 0xE361, 0xEBC2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, // 0x0BA0 (2976) 192 | 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xFBC2, 0xFC02, 0xCB21, 0x0000, // 0x0BB0 (2992) 193 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BC0 (3008) 194 | 0x0000, 0x0000, 0x8A01, 0xEB81, 0xFBE2, 0xF3C1, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, // 0x0BD0 (3024) 195 | 0xF3E2, 0xF3E2, 0xF3E2, 0xF3C2, 0xEBC2, 0xEBC1, 0xF3C2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, // 0x0BE0 (3040) 196 | 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3E2, 0xF3C2, 0xFBC1, 0xFBE2, 0xCB01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BF0 (3056) 197 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x79E0, // 0x0C00 (3072) 198 | 0xE361, 0xFBE2, 0xF3C1, 0xF3C2, 0xF3E2, 0xF3E2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3E2, 0xF3C2, // 0x0C10 (3088) 199 | 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3E2, // 0x0C20 (3104) 200 | 0xF3C2, 0xF3C1, 0xFBC1, 0xFBC1, 0xC2E1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C30 (3120) 201 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4920, 0xD321, 0xFBC1, 0xFBC1, // 0x0C40 (3136) 202 | 0xF3A1, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, // 0x0C50 (3152) 203 | 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C1, 0xF3A1, 0xFBE1, 0xEB81, 0xAA81, // 0x0C60 (3168) 204 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C70 (3184) 205 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xB2C1, 0xEB81, 0xFBC1, 0xFBA1, 0xF3A1, 0xF3C1, // 0x0C80 (3200) 206 | 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, // 0x0C90 (3216) 207 | 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C2, 0xF3C1, 0xF3A1, 0xFBC1, 0xFBC1, 0xDB21, 0x79C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0CA0 (3232) 208 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0CB0 (3248) 209 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6980, 0xD301, 0xF381, 0xFBC1, 0xFBA1, 0xF3A1, 0xF3A1, 0xF3C1, 0xF3C1, // 0x0CC0 (3264) 210 | 0xF3C1, 0xF3C1, 0xF3C1, 0xF3C1, 0xF3C1, 0xF3C1, 0xF3C1, 0xF3C1, 0xF3C1, 0xF3C1, 0xF3C1, 0xF3C1, 0xF3C1, 0xF3C1, 0xF3C1, 0xF3A1, // 0x0CD0 (3280) 211 | 0xF3A1, 0xFBA1, 0xFBC1, 0xE361, 0xB281, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0CE0 (3296) 212 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0CF0 (3312) 213 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8A21, 0xD301, 0xEB61, 0xFBC1, 0xFBA1, 0xFBA1, 0xF3A1, 0xF3A1, 0xF3A1, 0xF3A1, 0xF3A1, // 0x0D00 (3328) 214 | 0xF3A1, 0xF3A1, 0xF3A1, 0xF3A1, 0xF3A1, 0xF3A1, 0xF3A1, 0xF3A1, 0xF3A1, 0xF3A1, 0xFBA1, 0xFBC1, 0xFBA1, 0xE361, 0xBAC1, 0x38E0, // 0x0D10 (3344) 215 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0D20 (3360) 216 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0D30 (3376) 217 | 0x0000, 0x0000, 0x0000, 0x71A0, 0xBAC1, 0xDB21, 0xEB61, 0xFBA1, 0xFBA1, 0xFBA1, 0xFBA1, 0xFBA1, 0xFB81, 0xF381, 0xF381, 0xF3A1, // 0x0D40 (3392) 218 | 0xFBA1, 0xFBA1, 0xFBA1, 0xFBA1, 0xFBC1, 0xFB81, 0xEB41, 0xD301, 0xAA81, 0x28A0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0D50 (3408) 219 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0D60 (3424) 220 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0D70 (3440) 221 | 0x0000, 0x0820, 0x79C0, 0xBAA1, 0xCAC1, 0xE341, 0xEB41, 0xE321, 0xEB61, 0xF361, 0xF361, 0xF361, 0xEB41, 0xEB41, 0xEB41, 0xD301, // 0x0D80 (3456) 222 | 0xC2C1, 0xAA61, 0x4920, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0D90 (3472) 223 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0DA0 (3488) 224 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0DB0 (3504) 225 | 0x0000, 0x0820, 0x38E0, 0x6160, 0x81E1, 0x9200, 0x9200, 0x8A00, 0x79A0, 0x5140, 0x30A0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0DC0 (3520) 226 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0DD0 (3536) 227 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0DE0 (3552) 228 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0DF0 (3568) 229 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0E00 (3584) 230 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0E10 (3600) 231 | }; 232 | 233 | 234 | // Icon width and height 235 | const uint16_t logo_Width = 140; 236 | const uint16_t logo_Height = 35; 237 | 238 | 239 | const unsigned short cryptopasivo[0x1324] PROGMEM ={ 240 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0010 (16) 241 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0020 (32) 242 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0030 (48) 243 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0040 (64) 244 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0050 (80) 245 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0060 (96) 246 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0070 (112) 247 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0080 (128) 248 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0090 (144) 249 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00A0 (160) 250 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00B0 (176) 251 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00C0 (192) 252 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00D0 (208) 253 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00E0 (224) 254 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00F0 (240) 255 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0100 (256) 256 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0110 (272) 257 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0120 (288) 258 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0130 (304) 259 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0140 (320) 260 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0150 (336) 261 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0160 (352) 262 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0170 (368) 263 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0180 (384) 264 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0190 (400) 265 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01A0 (416) 266 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01B0 (432) 267 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01C0 (448) 268 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01D0 (464) 269 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01E0 (480) 270 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01F0 (496) 271 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0200 (512) 272 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0210 (528) 273 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0220 (544) 274 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0230 (560) 275 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0240 (576) 276 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0250 (592) 277 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0260 (608) 278 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0270 (624) 279 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0280 (640) 280 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0290 (656) 281 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x02A0 (672) 282 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x02B0 (688) 283 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x02C0 (704) 284 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x02D0 (720) 285 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x02E0 (736) 286 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x02F0 (752) 287 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0300 (768) 288 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0310 (784) 289 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0320 (800) 290 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0330 (816) 291 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0340 (832) 292 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0350 (848) 293 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0360 (864) 294 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0370 (880) 295 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0380 (896) 296 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0390 (912) 297 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x03A0 (928) 298 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x03B0 (944) 299 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x03C0 (960) 300 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x03D0 (976) 301 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x03E0 (992) 302 | 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, // 0x03F0 (1008) 303 | 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0400 (1024) 304 | 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0410 (1040) 305 | 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0420 (1056) 306 | 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, // 0x0430 (1072) 307 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0440 (1088) 308 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, // 0x0450 (1104) 309 | 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0460 (1120) 310 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0470 (1136) 311 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x0480 (1152) 312 | 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0490 (1168) 313 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, // 0x04A0 (1184) 314 | 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x04B0 (1200) 315 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, // 0x04C0 (1216) 316 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x04D0 (1232) 317 | 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x04E0 (1248) 318 | 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x04F0 (1264) 319 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0500 (1280) 320 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0510 (1296) 321 | 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0520 (1312) 322 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x0530 (1328) 323 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, // 0x0540 (1344) 324 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0550 (1360) 325 | 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, // 0x0560 (1376) 326 | 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, // 0x0570 (1392) 327 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0580 (1408) 328 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x0590 (1424) 329 | 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, // 0x05A0 (1440) 330 | 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, // 0x05B0 (1456) 331 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, // 0x05C0 (1472) 332 | 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x05D0 (1488) 333 | 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x05E0 (1504) 334 | 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x05F0 (1520) 335 | 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0600 (1536) 336 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0610 (1552) 337 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x0620 (1568) 338 | 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, // 0x0630 (1584) 339 | 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, // 0x0640 (1600) 340 | 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, // 0x0650 (1616) 341 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, // 0x0660 (1632) 342 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0670 (1648) 343 | 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0680 (1664) 344 | 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0690 (1680) 345 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x06A0 (1696) 346 | 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, // 0x06B0 (1712) 347 | 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x06C0 (1728) 348 | 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, // 0x06D0 (1744) 349 | 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x06E0 (1760) 350 | 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x06F0 (1776) 351 | 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, // 0x0700 (1792) 352 | 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0710 (1808) 353 | 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0720 (1824) 354 | 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, // 0x0730 (1840) 355 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, // 0x0740 (1856) 356 | 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, // 0x0750 (1872) 357 | 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, // 0x0760 (1888) 358 | 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0770 (1904) 359 | 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, // 0x0780 (1920) 360 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0790 (1936) 361 | 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x07A0 (1952) 362 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, // 0x07B0 (1968) 363 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x07C0 (1984) 364 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, // 0x07D0 (2000) 365 | 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, // 0x07E0 (2016) 366 | 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, // 0x07F0 (2032) 367 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0800 (2048) 368 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0810 (2064) 369 | 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, // 0x0820 (2080) 370 | 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0830 (2096) 371 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, // 0x0840 (2112) 372 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0850 (2128) 373 | 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0860 (2144) 374 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0870 (2160) 375 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, // 0x0880 (2176) 376 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x0890 (2192) 377 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x08A0 (2208) 378 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, // 0x08B0 (2224) 379 | 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x08C0 (2240) 380 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x08D0 (2256) 381 | 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x08E0 (2272) 382 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x08F0 (2288) 383 | 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0900 (2304) 384 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0910 (2320) 385 | 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0920 (2336) 386 | 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0930 (2352) 387 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0940 (2368) 388 | 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0950 (2384) 389 | 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0960 (2400) 390 | 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0970 (2416) 391 | 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, // 0x0980 (2432) 392 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x0990 (2448) 393 | 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x09A0 (2464) 394 | 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, // 0x09B0 (2480) 395 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x09C0 (2496) 396 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, // 0x09D0 (2512) 397 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x09E0 (2528) 398 | 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, // 0x09F0 (2544) 399 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, // 0x0A00 (2560) 400 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, // 0x0A10 (2576) 401 | 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, // 0x0A20 (2592) 402 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, // 0x0A30 (2608) 403 | 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0A40 (2624) 404 | 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A50 (2640) 405 | 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A60 (2656) 406 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A70 (2672) 407 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, // 0x0A80 (2688) 408 | 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A90 (2704) 409 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AA0 (2720) 410 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AB0 (2736) 411 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AC0 (2752) 412 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AD0 (2768) 413 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AE0 (2784) 414 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AF0 (2800) 415 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B00 (2816) 416 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B10 (2832) 417 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0B20 (2848) 418 | 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B30 (2864) 419 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B40 (2880) 420 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0B50 (2896) 421 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B60 (2912) 422 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B70 (2928) 423 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B80 (2944) 424 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B90 (2960) 425 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0BA0 (2976) 426 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BB0 (2992) 427 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BC0 (3008) 428 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BD0 (3024) 429 | 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BE0 (3040) 430 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BF0 (3056) 431 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C00 (3072) 432 | 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C10 (3088) 433 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0C20 (3104) 434 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, // 0x0C30 (3120) 435 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C40 (3136) 436 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C50 (3152) 437 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0C60 (3168) 438 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C70 (3184) 439 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C80 (3200) 440 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0C90 (3216) 441 | 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0CA0 (3232) 442 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0CB0 (3248) 443 | 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, // 0x0CC0 (3264) 444 | 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0CD0 (3280) 445 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0CE0 (3296) 446 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, // 0x0CF0 (3312) 447 | 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0D00 (3328) 448 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0D10 (3344) 449 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0D20 (3360) 450 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0D30 (3376) 451 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0D40 (3392) 452 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, // 0x0D50 (3408) 453 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, // 0x0D60 (3424) 454 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, // 0x0D70 (3440) 455 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, // 0x0D80 (3456) 456 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0D90 (3472) 457 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, // 0x0DA0 (3488) 458 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0DB0 (3504) 459 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0DC0 (3520) 460 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0DD0 (3536) 461 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0DE0 (3552) 462 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0DF0 (3568) 463 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0E00 (3584) 464 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0E10 (3600) 465 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0E20 (3616) 466 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0E30 (3632) 467 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, // 0x0E40 (3648) 468 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0E50 (3664) 469 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0E60 (3680) 470 | 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0E70 (3696) 471 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0E80 (3712) 472 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0E90 (3728) 473 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0EA0 (3744) 474 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0EB0 (3760) 475 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0EC0 (3776) 476 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0ED0 (3792) 477 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0EE0 (3808) 478 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0EF0 (3824) 479 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, // 0x0F00 (3840) 480 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0F10 (3856) 481 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0F20 (3872) 482 | 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, // 0x0F30 (3888) 483 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0F40 (3904) 484 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0F50 (3920) 485 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0F60 (3936) 486 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0F70 (3952) 487 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0F80 (3968) 488 | 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0F90 (3984) 489 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0FA0 (4000) 490 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, // 0x0FB0 (4016) 491 | 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0FC0 (4032) 492 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0FD0 (4048) 493 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0FE0 (4064) 494 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0FF0 (4080) 495 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1000 (4096) 496 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1010 (4112) 497 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1020 (4128) 498 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1030 (4144) 499 | 0x0000, 0x0000, 0x0000, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0xFDC8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1040 (4160) 500 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1050 (4176) 501 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1060 (4192) 502 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1070 (4208) 503 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1080 (4224) 504 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1090 (4240) 505 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x10A0 (4256) 506 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x10B0 (4272) 507 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x10C0 (4288) 508 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x10D0 (4304) 509 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x10E0 (4320) 510 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x10F0 (4336) 511 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1100 (4352) 512 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1110 (4368) 513 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1120 (4384) 514 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1130 (4400) 515 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1140 (4416) 516 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1150 (4432) 517 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1160 (4448) 518 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1170 (4464) 519 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1180 (4480) 520 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1190 (4496) 521 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x11A0 (4512) 522 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x11B0 (4528) 523 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x11C0 (4544) 524 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x11D0 (4560) 525 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x11E0 (4576) 526 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x11F0 (4592) 527 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1200 (4608) 528 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1210 (4624) 529 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1220 (4640) 530 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1230 (4656) 531 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1240 (4672) 532 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1250 (4688) 533 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1260 (4704) 534 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1270 (4720) 535 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1280 (4736) 536 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1290 (4752) 537 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x12A0 (4768) 538 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x12B0 (4784) 539 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x12C0 (4800) 540 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x12D0 (4816) 541 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x12E0 (4832) 542 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x12F0 (4848) 543 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1300 (4864) 544 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1310 (4880) 545 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1320 (4896) 546 | 0x0000, 0x0000, 0x0000, 0x0000, }; 547 | 548 | const uint16_t btcMini_Width = 24; 549 | const uint16_t btcMini_Height = 24; 550 | 551 | const unsigned short btcMini[0x240] PROGMEM ={ 552 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF483, 0xFCA3, 0xF483, 0xF483, 0xF483, 0xFC83, 0xFCA2, // 0x0010 (16) 553 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCA3, // 0x0020 (32) 554 | 0xFCA3, 0xFC83, 0xFCA3, 0xFCC3, 0xFCE3, 0xFCC3, 0xFCA3, 0xFC83, 0xFCA3, 0xFC83, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0030 (48) 555 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF463, 0xFCA3, 0xFCC3, 0xFCE3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFC83, 0xFCA3, 0xFCA3, 0xFCC3, // 0x0040 (64) 556 | 0xFCE3, 0xFCA3, 0xFCA3, 0xF482, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF483, 0xFCC3, 0xFCE3, 0xFCA3, // 0x0050 (80) 557 | 0xF483, 0xF483, 0xF483, 0xF482, 0xF462, 0xF483, 0xF483, 0xF483, 0xF483, 0xFCA3, 0xFD03, 0xFCA3, 0xF483, 0x0000, 0x0000, 0x0000, // 0x0060 (96) 558 | 0x0000, 0x0000, 0x0000, 0xF483, 0xFCA3, 0xFCC3, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xFCC4, 0xFD28, 0xF4A3, 0xF441, 0xF462, // 0x0070 (112) 559 | 0xF4A3, 0xF483, 0xF483, 0xFCE3, 0xFCA3, 0xFC82, 0x0000, 0x0000, 0x0000, 0x0000, 0xF483, 0xFCA3, 0xFCC3, 0xF483, 0xF483, 0xF483, // 0x0080 (128) 560 | 0xF482, 0xF461, 0xF420, 0xFD8B, 0xFFFF, 0xFD06, 0xFE51, 0xFD6A, 0xF462, 0xF483, 0xF483, 0xF483, 0xFCE3, 0xF483, 0xEC82, 0x0000, // 0x0090 (144) 561 | 0x0000, 0xFFE0, 0xF483, 0xFCE3, 0xF483, 0xF483, 0xF483, 0xF461, 0xFD8B, 0xFEF6, 0xFDAC, 0xFED6, 0xFF7A, 0xFCE6, 0xFFFF, 0xFDAD, // 0x00A0 (160) 562 | 0xF441, 0xF483, 0xF483, 0xF483, 0xF483, 0xFD03, 0xF483, 0x0000, 0x0000, 0xF4A3, 0xFCC3, 0xFCA3, 0xF483, 0xF483, 0xF483, 0xF461, // 0x00B0 (176) 563 | 0xFDAC, 0xFFBC, 0xFFFF, 0xFFFF, 0xFFDE, 0xFF7A, 0xFFFF, 0xFD49, 0xF440, 0xF482, 0xF483, 0xF483, 0xF483, 0xFCA3, 0xF483, 0xF483, // 0x00C0 (192) 564 | 0x0000, 0xF483, 0xFCE3, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF461, 0xFD06, 0xFFFF, 0xFFFF, 0xFF5A, 0xFFBD, 0xFFFF, 0xFFDE, // 0x00D0 (208) 565 | 0xFE51, 0xF482, 0xF483, 0xF483, 0xF483, 0xF483, 0xFCE3, 0xF483, 0xF4A3, 0xF483, 0xFCC3, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, // 0x00E0 (224) 566 | 0xF461, 0xFD6A, 0xFFFF, 0xFFFF, 0xFD06, 0xF482, 0xFE10, 0xFFFF, 0xFFFF, 0xFDEE, 0xF461, 0xF483, 0xF483, 0xF483, 0xFCE3, 0xF483, // 0x00F0 (240) 567 | 0xF4A2, 0xFCA3, 0xFCA3, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF441, 0xFE51, 0xFFFF, 0xFF5A, 0xF461, 0xF400, 0xF482, 0xFFBD, // 0x0100 (256) 568 | 0xFFFF, 0xFEB4, 0xF441, 0xF483, 0xF483, 0xF483, 0xFCA3, 0xF483, 0xF483, 0xFCC3, 0xFCA3, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, // 0x0110 (272) 569 | 0xF462, 0xFF18, 0xFFFF, 0xFFFF, 0xFED5, 0xFE0F, 0xFED6, 0xFFFF, 0xFFFF, 0xFDAC, 0xF461, 0xF483, 0xF483, 0xF483, 0xFCA3, 0xF483, // 0x0120 (288) 570 | 0xF483, 0xFCC3, 0xFCA3, 0xF483, 0xF483, 0xF483, 0xF483, 0xF482, 0xFCC5, 0xFFDD, 0xFFFF, 0xFF17, 0xFF5A, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0130 (304) 571 | 0xFE30, 0xF461, 0xF483, 0xF483, 0xF483, 0xF483, 0xFCA3, 0xF483, 0xFC83, 0xFCC3, 0xFCA3, 0xF483, 0xF483, 0xF483, 0xF482, 0xF420, // 0x0140 (320) 572 | 0xFD6A, 0xFFFF, 0xFFFF, 0xFD06, 0xF440, 0xFD28, 0xFF59, 0xFFFF, 0xFF5A, 0xFCC5, 0xF482, 0xF483, 0xF483, 0xF483, 0xFCA3, 0xF483, // 0x0150 (336) 573 | 0xFCA2, 0xF483, 0xFCA3, 0xF483, 0xF483, 0xF482, 0xFCE6, 0xFDEF, 0xFEF6, 0xFFFF, 0xFF5A, 0xF461, 0xF440, 0xF3E0, 0xFDAC, 0xFFFF, // 0x0160 (352) 574 | 0xFFFF, 0xFDAC, 0xF461, 0xF483, 0xF483, 0xF483, 0xFCC3, 0xF483, 0xFCE3, 0xF483, 0xFCC3, 0xF483, 0xF483, 0xF461, 0xFDEE, 0xFFFF, // 0x0170 (368) 575 | 0xFFFF, 0xFFFF, 0xFFBD, 0xFE0F, 0xFD8A, 0xFD8A, 0xFF39, 0xFFFF, 0xFFFF, 0xFD49, 0xF461, 0xF483, 0xF483, 0xF483, 0xFCE3, 0xF483, // 0x0180 (384) 576 | 0x0000, 0xFCA3, 0xFCE3, 0xF483, 0xF483, 0xF483, 0xF4C4, 0xFD28, 0xFE51, 0xFFFF, 0xFFDE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0190 (400) 577 | 0xFED6, 0xF462, 0xF483, 0xF483, 0xF483, 0xFC83, 0xFCE3, 0xF483, 0x0000, 0xFCA3, 0xFCA3, 0xFCA3, 0xF483, 0xF483, 0xF482, 0xF420, // 0x01A0 (416) 578 | 0xFD8B, 0xFFFF, 0xFD49, 0xFF7B, 0xFF39, 0xFE72, 0xFEB4, 0xFE0F, 0xF4A3, 0xF482, 0xF483, 0xF483, 0xF483, 0xFCC3, 0xFC83, 0xFC84, // 0x01B0 (432) 579 | 0x0000, 0x0000, 0xF483, 0xFD03, 0xF483, 0xF483, 0xF483, 0xF461, 0xFDEF, 0xFF17, 0xFD07, 0xFFFF, 0xFDAC, 0xF420, 0xF461, 0xF441, // 0x01C0 (448) 580 | 0xF482, 0xF483, 0xF483, 0xF483, 0xFCA3, 0xFCE3, 0xF483, 0x0000, 0x0000, 0x0000, 0xF423, 0xF4A3, 0xFCE3, 0xF483, 0xF483, 0xF483, // 0x01D0 (464) 581 | 0xF483, 0xF483, 0xFCE5, 0xFE30, 0xFCE5, 0xF482, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xFD03, 0xF483, 0x0000, 0x0000, // 0x01E0 (480) 582 | 0x0000, 0x0000, 0x0000, 0xFCA3, 0xFCA3, 0xFCE3, 0xF483, 0xF483, 0xF483, 0xF482, 0xF482, 0xF441, 0xF482, 0xF483, 0xF483, 0xF483, // 0x01F0 (496) 583 | 0xF483, 0xF483, 0xFCA3, 0xFD03, 0xFCA3, 0xEC82, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF463, 0xFCA3, 0xFD03, 0xFCC3, // 0x0200 (512) 584 | 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xF483, 0xFC83, 0xFCC3, 0xFCE3, 0xFCA3, 0xEC82, 0x0000, 0x0000, 0x0000, // 0x0210 (528) 585 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xE3E3, 0xF483, 0xFCA3, 0xFCE3, 0xFCE3, 0xFCC3, 0xFCA3, 0xFCA3, 0xFCA3, 0xFCC3, 0xFCE3, // 0x0220 (544) 586 | 0xFCE3, 0xFCA3, 0xF483, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF462, // 0x0230 (560) 587 | 0xFCA3, 0xFCA3, 0xFCA3, 0xF483, 0xF483, 0xF483, 0xFC83, 0xFCA3, 0xFCA3, 0xECA2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0240 (576) 588 | }; 589 | -------------------------------------------------------------------------------- /ESP32_miner/configs.h: -------------------------------------------------------------------------------- 1 | /************************************************ 2 | * This code was originally forked from Valerio Vaccaro 3 | * https://github.com/valerio-vaccaro/HAN 4 | * **********************************************/ 5 | 6 | // Wifi 7 | #define WIFI_SSID "YourWifi" 8 | #define WIFI_PASSWORD "Pass" 9 | 10 | // Mining 11 | #define THREADS 1 12 | #define MAX_NONCE 1000000 13 | #define ADDRESS "yourBTCAddr" 14 | 15 | 16 | // Pool 17 | #define POOL_URL "solo.ckpool.org" //"btc.zsolo.bid" "eu.stratum.slushpool.com" 18 | #define POOL_PORT 3333 //6057 //3333 19 | 20 | //Display 21 | #define SC_HEIGHT 128 // screen height 22 | #define SC_WIDTH 160 // screen width 23 | #define SC_YCENTER 64 // screen center Y 24 | #define SC_XCENTER 80 // screen center X 25 | #define HEADER_HEIGHT 25 26 | /******************************************************/ 27 | //Display TFT_eSPI requirements 28 | /* 29 | - Required to modify ST7735_rotation.h library and 30 | set 0 offset on column/row when rotation is 1 and display is ST7735 GREENTAB2 31 | · colstart = 0;//1; 32 | · rowstart = 0;//2; 33 | 34 | - Added custom configuration Setup300_MiniMiner.h on TFT_eSPI library custom Setups 35 | - Modified User_Setup_Select.h to call custom library Setup300_MiniMiner.h 36 | 37 | */ 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Hardware.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitMaker-hub/ESP32_NerdMiner/d7b1c565b4485ecefb77780f11a914d879459ac6/Hardware.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NerdSoloMiner 2 | A NerdSoloMiner using > Han miner 3 | 4 | Original project https://github.com/valerio-vaccaro/HAN 5 | 6 | ![image](https://github.com/cryptopasivo/ESP32_NerdMiner/blob/master/img/Nerdminer1.jpg) 7 | ![image](https://github.com/cryptopasivo/ESP32_NerdMiner/blob/master/img/Nerdminer2.jpg) 8 | 9 | ## Requirements 10 | - ESP32-WROOM 11 | - TFT 1,8" ST7735S 12 | - Arduino IDE 13 | - TFT_eSPI Library 14 | 15 | ## Description 16 | ESP32 implementing Stratum protocol to mine on solo pool. Pool can be changed but originally works with ckpool. 17 | 18 | This miner is multicore and multithreads, each thread mine a different block template. After 1,000,000 trials the block in refreshed in order to avoid mining on old template. 19 | 20 | ## HW Schematic 21 | Connect your ESP32 following this image. 22 | 23 | ![image](https://github.com/cryptopasivo/ESP32_NerdMiner/blob/master/Hardware.jpg) 24 | 25 | You will find all STL files to build the box. 26 | 27 | ![image]https://github.com/cryptopasivo/ESP32_NerdMiner/blob/master/ASIC_BOX/ASIC_BOX.png) 28 | 29 | You can add a 5V fan just for fun and to make your miner pretty. 30 | 31 | 32 | ## FW Configurations 33 | All configurations are saved in the file `config.h`. 34 | 35 | Wifi can be set using `WIFI_SSID` and `WIFI_PASSWORD` constants. 36 | 37 | `THREADS` defines the number of concurrent threads used, every thread will work on a different template. 38 | 39 | Every thread will use a progressive nonce from 0 to `MAX_NONCE`, when nonce will be equal to `MAX_NONCE` a new template will be downloaded and nonce will be reset to 0. 40 | 41 | Funds will go to the address writte in `ADDRESS`. 42 | 43 | `POOL_URL` and `POOL_PORT` are used for select the solo pool. 44 | 45 | -------------------------------------------------------------------------------- /img/Nerdminer1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitMaker-hub/ESP32_NerdMiner/d7b1c565b4485ecefb77780f11a914d879459ac6/img/Nerdminer1.jpg -------------------------------------------------------------------------------- /img/Nerdminer2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitMaker-hub/ESP32_NerdMiner/d7b1c565b4485ecefb77780f11a914d879459ac6/img/Nerdminer2.jpg --------------------------------------------------------------------------------