This commit is contained in:
shhds 2023-06-12 15:10:45 +08:00
commit fc4f54334d
37 changed files with 14608 additions and 1504 deletions

View file

@ -0,0 +1,97 @@
// <<< Use Configuration Wizard in Context Menu >>>
// <h> Debug MCU Configuration
// <o0.0> DBG_SLEEP
// <i> Debug Sleep Mode
// <i> 0: (FCLK=On, HCLK=Off) FCLK is clocked by the system clock as previously configured by the software while HCLK is disabled
// <i> 1: (FCLK=On, HCLK=On) HCLK is fed by the same clock that is provided to FCLK
// <o0.1> DBG_STOP
// <i> Debug Stop Mode
// <i> 0: (FCLK=Off, HCLK=Off) Clock controller disables all clocks
// <i> 1: (FCLK=On, HCLK=On) FCLK and HCLK are provided by the internal RC oscillator which remains active
// <o0.2> DBG_STANDBY
// <i> Debug Standby Mode
// <i> 0: (FCLK=Off, HCLK=Off) The whole digital part is unpowered.
// <i> 1: (FCLK=On, HCLK=On) Digital part is powered and FCLK and HCLK are provided by the internal RC oscillator which remains active
// <o0.8> DBG_IWDG_STOP
// <i> Debug independent watchdog stopped when core is halted
// <i> 0: The watchdog counter clock continues even if the core is halted
// <i> 1: The watchdog counter clock is stopped when the core is halted
// <o0.9> DBG_WWDG_STOP
// <i> Debug window watchdog stopped when core is halted
// <i> 0: The window watchdog counter clock continues even if the core is halted
// <i> 1: The window watchdog counter clock is stopped when the core is halted
// <o0.10> DBG_TIM1_STOP
// <i> Timer 1 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.11> DBG_TIM2_STOP
// <i> Timer 2 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.12> DBG_TIM3_STOP
// <i> Timer 3 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.13> DBG_TIM4_STOP
// <i> Timer 4 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.14> DBG_CAN1_STOP
// <i> Debug CAN1 stopped when Core is halted
// <i> 0: Same behavior as in normal mode
// <i> 1: CAN1 receive registers are frozen
// <o0.15> DBG_I2C1_SMBUS_TIMEOUT
// <i> I2C1 SMBUS timeout mode stopped when Core is halted
// <i> 0: Same behavior as in normal mode
// <i> 1: The SMBUS timeout is frozen
// <o0.16> DBG_I2C2_SMBUS_TIMEOUT
// <i> I2C2 SMBUS timeout mode stopped when Core is halted
// <i> 0: Same behavior as in normal mode
// <i> 1: The SMBUS timeout is frozen
// <o0.17> DBG_TIM8_STOP
// <i> Timer 8 counter stopped when core is halted
// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
// <o0.18> DBG_TIM5_STOP
// <i> Timer 5 counter stopped when core is halted
// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
// <o0.19> DBG_TIM6_STOP
// <i> Timer 6 counter stopped when core is halted
// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
// <o0.20> DBG_TIM7_STOP
// <i> Timer 7 counter stopped when core is halted
// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
// <o0.21> DBG_CAN2_STOP
// <i> Debug CAN2 stopped when Core is halted
// <i> 0: Same behavior as in normal mode
// <i> 1: CAN2 receive registers are frozen
// <o0.25> DBG_TIM12_STOP
// <i> Timer 12 counter stopped when core is halted
// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
// <o0.26> DBG_TIM13_STOP
// <i> Timer 13 counter stopped when core is halted
// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
// <o0.27> DBG_TIM14_STOP
// <i> Timer 14 counter stopped when core is halted
// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
// <o0.28> DBG_TIM9_STOP
// <i> Timer 9 counter stopped when core is halted
// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
// <o0.29> DBG_TIM10_STOP
// <i> Timer 10 counter stopped when core is halted
// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
// <o0.30> DBG_TIM11_STOP
// <i> Timer 11 counter stopped when core is halted
// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
// </h>
DbgMCU_CR = 0x00000007;
// <<< end of configuration section >>>

View file

@ -0,0 +1,20 @@
/*
* Auto generated Run-Time-Environment Component Configuration File
* *** Do not modify ! ***
*
* Project: 'epd-demo'
* Target: 'EPD_2in13g_test'
*/
#ifndef RTE_COMPONENTS_H
#define RTE_COMPONENTS_H
/*
* Define the Device Header File:
*/
#define CMSIS_device_header "stm32f10x.h"
#endif /* RTE_COMPONENTS_H */

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,94 @@
<html>
<body>
<pre>
<h1>µVision Build Log</h1>
<h2>Tool Versions:</h2>
IDE-Version: ¦ÌVision V5.26.2.0
Copyright (C) 2018 ARM Ltd and ARM Germany GmbH. All rights reserved.
License Information: , , LIC=RC93N-YLJYL-JJH6S-LI3Z1-D1AV2-99PL8
Tool Versions:
Toolchain: MDK-ARM Plus Version: 5.26.2.0
Toolchain Path: D:\KEIL\azwz\ARM\ARMCC\Bin
C Compiler: Armcc.exe V5.06 update 6 (build 750)
Assembler: Armasm.exe V5.06 update 6 (build 750)
Linker/Locator: ArmLink.exe V5.06 update 6 (build 750)
Library Manager: ArmAr.exe V5.06 update 6 (build 750)
Hex Converter: FromElf.exe V5.06 update 6 (build 750)
CPU DLL: SARMCM3.DLL V5.26.2.0
Dialog DLL: DCM.DLL V1.17.2.0
Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.5.0
Dialog DLL: TCM.DLL V1.36.1.0
<h2>Project:</h2>
E:\ÏîÄ¿\e-Paper\Code\e-Paper\STM32\STM32-F103ZET6\MDK-ARM\epd-demo.uvprojx
Project File Date: 05/29/2023
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\KEIL\azwz\ARM\ARMCC\Bin'
Build target 'EPD_2in66b_test'
assembling startup_stm32f103xe.s...
compiling stm32f1xx_it.c...
compiling gpio.c...
compiling usart.c...
compiling spi.c...
compiling main.c...
compiling ImageData.c...
compiling DEV_Config.c...
compiling EPD_2in66b.c...
compiling stm32f1xx_hal_msp.c...
compiling EPD_2in66b_test.c...
compiling font8.c...
compiling font12.c...
compiling font12CN.c...
compiling font16.c...
compiling font20.c...
compiling font24.c...
compiling font24CN.c...
compiling GUI_Paint.c...
compiling system_stm32f1xx.c...
compiling stm32f1xx_hal_gpio_ex.c...
compiling stm32f1xx_hal.c...
compiling stm32f1xx_hal_rcc.c...
compiling stm32f1xx_hal_spi.c...
compiling stm32f1xx_hal_gpio.c...
compiling stm32f1xx_hal_rcc_ex.c...
compiling stm32f1xx_hal_pwr.c...
compiling stm32f1xx_hal_cortex.c...
compiling stm32f1xx_hal_dma.c...
compiling stm32f1xx_hal_tim.c...
compiling stm32f1xx_hal_flash.c...
compiling stm32f1xx_hal_flash_ex.c...
compiling stm32f1xx_hal_tim_ex.c...
compiling stm32f1xx_hal_exti.c...
compiling stm32f1xx_hal_uart.c...
linking...
Program Size: Code=23508 RO-data=22012 RW-data=68 ZI-data=53428
FromELF: creating hex file...
"epd-demo\epd-demo.axf" - 0 Error(s), 0 Warning(s).
<h2>Software Packages used:</h2>
Package Vendor: ARM
http://www.keil.com/pack/ARM.CMSIS.5.9.0.pack
ARM.CMSIS.5.9.0
CMSIS (Common Microcontroller Software Interface Standard)
* Component: CORE Version: 5.6.0
Package Vendor: Keil
http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.1.0.pack
Keil.STM32F1xx_DFP.2.1.0
STMicroelectronics STM32F1 Series Device Support, Drivers and Examples
<h2>Collection of Component include folders:</h2>
.\RTE\_EPD_2in66b_test
D:\KEIL\azwz\ARM\PACK\ARM\CMSIS\5.9.0\CMSIS\Core\Include
D:\KEIL\azwz\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include
<h2>Collection of Component Files used:</h2>
* Component: ARM::CMSIS:CORE:5.6.0
Build Time Elapsed: 00:00:13
</pre>
</body>
</html>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,160 @@
/*****************************************************************************
* | File : EPD_2IN13G_test.c
* | Author : Waveshare team
* | Function : 2.13inch e-paper (G) test demo
* | Info :
*----------------
* | This version: V1.0
* | Date : 2023-05-24
* | Info :
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documnetation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
******************************************************************************/
#include "EPD_Test.h"
#include "EPD_2in13g.h"
int EPD_test(void)
{
printf("EPD_2IN13G_test Demo\r\n");
if(DEV_Module_Init()!=0){
return -1;
}
printf("e-Paper Init and Clear...\r\n");
EPD_2IN13G_Init();
EPD_2IN13G_Clear(EPD_2IN13G_WHITE);
DEV_Delay_ms(2000);
//Create a new image cache
UBYTE *BlackImage,*BlackImage1;
/* you have to edit the startup_stm32fxxx.s file and set a big enough heap size */
UWORD Imagesize = ((EPD_2IN13G_WIDTH % 4 == 0)? (EPD_2IN13G_WIDTH / 4 ): (EPD_2IN13G_WIDTH / 4 + 1)) * EPD_2IN13G_HEIGHT;
if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
printf("Failed to apply for black memory...\r\n");
return -1;
}
if((BlackImage1 = (UBYTE *)malloc(Imagesize)) == NULL) {
printf("Failed to apply for black memory...\r\n");
return -1;
}
printf("Paint_NewImage\r\n");
Paint_NewImage(BlackImage, EPD_2IN13G_WIDTH, EPD_2IN13G_HEIGHT, 90, EPD_2IN13G_WHITE);
Paint_SetScale(4);
Paint_NewImage(BlackImage1, EPD_2IN13G_WIDTH, EPD_2IN13G_HEIGHT, 0, EPD_2IN13G_WHITE);
Paint_SetScale(4);
#if 1 // show image for array
printf("show image for array\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(EPD_2IN13G_WHITE);
Paint_DrawBitMap(gImage_2in13g);
EPD_2IN13G_Display(BlackImage);
DEV_Delay_ms(2000);
#endif
#if 1 // Drawing on the image
//1.Select Image
printf("SelectImage:BlackImage\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(EPD_2IN13G_WHITE);
// 2.Drawing on the image
printf("Drawing:BlackImage\r\n");
Paint_DrawPoint(10, 80, EPD_2IN13G_RED, DOT_PIXEL_1X1, DOT_STYLE_DFT);
Paint_DrawPoint(10, 90, EPD_2IN13G_YELLOW, DOT_PIXEL_2X2, DOT_STYLE_DFT);
Paint_DrawPoint(10, 100, EPD_2IN13G_BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT);
Paint_DrawLine(20, 70, 70, 120, EPD_2IN13G_RED, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
Paint_DrawLine(70, 70, 20, 120, EPD_2IN13G_RED, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
Paint_DrawRectangle(20, 70, 70, 120, EPD_2IN13G_YELLOW, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
Paint_DrawRectangle(80, 70, 130, 120, EPD_2IN13G_YELLOW, DOT_PIXEL_1X1, DRAW_FILL_FULL);
Paint_DrawCircle(45, 95, 20, EPD_2IN13G_BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
Paint_DrawCircle(105, 95, 20, EPD_2IN13G_BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
Paint_DrawLine(85, 95, 125, 95, EPD_2IN13G_RED, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
Paint_DrawLine(105, 75, 105, 115, EPD_2IN13G_YELLOW, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
Paint_DrawString_EN(10, 0, "Red, yellow, white and black", &Font16, EPD_2IN13G_RED, EPD_2IN13G_YELLOW);
Paint_DrawString_EN(10, 35, "Four color e-Paper", &Font12, EPD_2IN13G_YELLOW, EPD_2IN13G_BLACK);
Paint_DrawString_CN(10, 125, "΢ѩµç×Ó", &Font24CN, EPD_2IN13G_RED, EPD_2IN13G_WHITE);
Paint_DrawNum(10, 50, 123456, &Font12, EPD_2IN13G_RED, EPD_2IN13G_WHITE);
printf("EPD_Display\r\n");
EPD_2IN13G_Display(BlackImage);
DEV_Delay_ms(3000);
#endif
#if 1 // Drawing on the image
//1.Select Image
printf("SelectImage:BlackImage\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(EPD_2IN13G_WHITE);
// 2.Drawing on the image
printf("Drawing:BlackImage\r\n");
Paint_DrawRectangle(1, 1, 168, 55, EPD_2IN13G_RED, DOT_PIXEL_1X1, DRAW_FILL_FULL);
Paint_DrawRectangle(1, 112, 167, 167, EPD_2IN13G_YELLOW, DOT_PIXEL_1X1, DRAW_FILL_FULL);
Paint_DrawRectangle(59, 1, 109, 167, EPD_2IN13G_BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
printf("EPD_Display\r\n");
EPD_2IN13G_Display(BlackImage);
DEV_Delay_ms(3000);
#endif
#if 1 // Drawing on the image
//1.Select Image
printf("SelectImage:BlackImage\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(EPD_2IN13G_WHITE);
int hNumber, hWidth, vNumber, vWidth;
hNumber = 8;
hWidth = EPD_2IN13G_HEIGHT/hNumber; // 168/16=21
vNumber = 8;
vWidth = EPD_2IN13G_WIDTH/vNumber; // 168/16=21
// 2.Drawing on the image
printf("Drawing:BlackImage\r\n");
for(int i=0; i<hNumber; i++) { // horizontal
Paint_DrawRectangle(1, 1+i*hWidth, EPD_2IN13G_WIDTH, hWidth*(1+i), EPD_2IN13G_BLACK + (i % 2), DOT_PIXEL_1X1, DRAW_FILL_FULL);
}
for(int i=0; i<vNumber; i++) { // vertical
if(i%2) {
Paint_DrawRectangle(1+i*vWidth, 1, vWidth*(i+1), EPD_2IN13G_HEIGHT, EPD_2IN13G_YELLOW + (i/2%2), DOT_PIXEL_1X1, DRAW_FILL_FULL);
}
}
printf("EPD_Display\r\n");
EPD_2IN13G_Display(BlackImage);
DEV_Delay_ms(3000);
#endif
printf("Clear...\r\n");
EPD_2IN13G_Clear(EPD_2IN13G_WHITE);
printf("Goto Sleep...\r\n");
EPD_2IN13G_Sleep();
free(BlackImage);
BlackImage = NULL;
DEV_Delay_ms(2000);//important, at least 2s
// close 5V
printf("close 5V, Module enters 0 power consumption ...\r\n");
DEV_Module_Exit();
return 0;
}

View file

@ -34,6 +34,7 @@
// ImageData2.c
/* --------------------------------------- */
extern const unsigned char gImage_2in13g[];
extern const unsigned char gImage_2in13b_V4b[];
extern const unsigned char gImage_2in13b_V4r[];

View file

@ -30,6 +30,492 @@
******************************************************************************/
#include "ImageData.h"
const unsigned char gImage_2in13g[7750] = {
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x55,0x55,0x55,0x55,0x7D,0x55,0x55,0x55,0x55,0x55,0x75,0xD7,0xF5,0x55,
0x55,0x55,0x55,0x55,0x75,0x75,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x55,0x55,0x55,0x55,0x7F,0x55,0x55,0x55,0x55,0x55,0x75,0xFF,0x7F,0x55,0x55,
0x55,0x55,0x55,0x75,0xF5,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x55,0x55,0x57,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x79,0xDF,0xD7,0xD5,0x55,0x55,
0x55,0x7F,0xF5,0x7D,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
0x55,0x57,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0xFD,0xD5,0xF5,0x55,0x55,0x55,0x55,
0x7F,0xFD,0x7F,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,
0x57,0x55,0x7D,0xF5,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFD,0x55,0x55,0x55,0x55,0x5D,
0x5D,0xF7,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,
0x55,0x7D,0x7D,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x5D,0x5F,
0xD7,0xF5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5D,
0x7D,0x5F,0x55,0x55,0x55,0x55,0xFF,0xFD,0xDD,0x55,0x55,0x55,0x55,0x5D,0x7F,0x57,
0x75,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5D,0x7D,
0x7D,0x55,0x55,0x55,0x55,0x5B,0x7D,0xDD,0xD5,0x55,0x55,0x55,0x5D,0x75,0xD7,0x55,
0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5D,0x7D,0xF5,
0x55,0x55,0x55,0x55,0x7F,0xFD,0xDF,0xD5,0x55,0x55,0x55,0x5D,0x7D,0xF7,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5F,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x5F,0x7D,0xDD,0x55,0x55,0x55,0x55,0x5D,0x7D,0xF7,0x55,0x55,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x55,0x5F,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFD,0xDD,0x55,0x55,0x55,0x55,0x7F,0xF5,0x7F,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xF5,0x5F,0x55,0x55,0x55,0x55,
0x55,0xFF,0xFD,0xFD,0x55,0x55,0x55,0x55,0x7F,0xF5,0x5F,0x55,0x55,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x7D,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFD,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x55,0x55,0x55,0x57,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x7D,0x55,
0x55,0x55,0x55,0x55,0x55,0xF5,0xF7,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x55,0x55,0x57,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x7D,0x55,0x55,
0x55,0x55,0x55,0x55,0x7F,0xF7,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x55,0x55,0x57,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x57,0xFD,0xFF,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x55,0x55,0x55,0x55,0x55,0x7F,0x55,0x55,0x55,0x55,0x57,0xFD,0xD7,0x55,0x55,0x55,
0x55,0x55,0x7D,0xF5,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
0x55,0x57,0xD5,0x55,0xD5,0x55,0x55,0x55,0x55,0x57,0x7D,0xD7,0x55,0x55,0x55,0x55,
0x57,0x6D,0xF5,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,
0x57,0xD5,0xFD,0xD5,0x55,0x55,0x55,0x55,0xF7,0x7D,0xD7,0x55,0x55,0x55,0x55,0x57,
0xF5,0xFD,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,
0x5F,0xF5,0xD5,0x55,0x55,0x55,0x55,0xF7,0x7D,0xD7,0x55,0x55,0x55,0x55,0x7D,0x5D,
0x7F,0xF5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5D,
0x55,0xDF,0x55,0x55,0x55,0x55,0xF7,0x7D,0xD7,0x55,0x55,0x55,0x55,0x7D,0x55,0x5F,
0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xD5,0x55,
0xFF,0x55,0x55,0x55,0x55,0xF7,0x7D,0xD7,0x55,0x55,0x55,0x55,0x7F,0xFF,0xDF,0x55,
0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0xFF,0x55,0xD5,
0x55,0x55,0x55,0x55,0xFF,0x7D,0xD7,0x55,0x55,0x55,0x55,0x5F,0xFF,0xDF,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xDF,0xFD,0xD5,0x55,
0x55,0x55,0x55,0x7F,0x7D,0xFF,0x55,0x55,0x55,0x55,0x55,0x7D,0xDF,0x55,0x55,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xD5,0x7D,0xD5,0x55,0x55,
0x55,0x55,0x55,0x7D,0x55,0x55,0x55,0x55,0x55,0x55,0xFD,0xFF,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xD5,0x55,0xD5,0x55,0x55,0x55,
0x55,0x55,0x7D,0x55,0x55,0x55,0x55,0x55,0x57,0xD5,0x5F,0x55,0x55,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x55,0x55,0x57,0xD5,0x7D,0x55,0x55,0x55,0x55,0x55,0x7D,0x5F,0x55,0x55,
0x55,0x55,0x55,0x5F,0x57,0xD5,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x55,0x55,0x57,0xD5,0x7D,0x55,0x55,0x55,0x55,0x55,0x75,0x5F,0x55,0x55,0x55,
0x55,0x55,0x5F,0x57,0xD5,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,
0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,
0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x55,0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x50,
0x15,0x55,0x55,0x75,0x50,0x55,0x54,0x15,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x55,0x5D,0x54,0x05,0x55,0x40,0x55,0x55,0x57,0x55,0x55,0x55,0x54,0x15,
0x55,0x55,0x75,0x50,0x15,0x54,0x05,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x55,0x5D,0x54,0x00,0x55,0x50,0x15,0x55,0x57,0x55,0x55,0x55,0x54,0x05,0x55,
0x55,0x75,0x50,0x05,0x55,0x01,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x55,0x5D,0x54,0x00,0x15,0x54,0x15,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,
0x75,0x50,0x01,0x55,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0xFF,0x55,
0x5D,0x54,0x10,0x05,0x54,0x15,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,
0x51,0x40,0x55,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
0x54,0x15,0x01,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,
0x50,0x15,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xEA,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,
0x15,0x40,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,0x54,
0x00,0x01,0x55,0x7F,0xFF,0xEA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,
0x50,0x00,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,0x55,0x00,
0x05,0x55,0x7F,0xFF,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x55,
0x05,0x55,0x55,0x57,0x55,0x50,0x55,0x55,0x05,0x55,0x55,0x75,0x50,0x55,0x50,0x55,
0x55,0x7F,0xFF,0xAF,0xFF,0xEE,0xAF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
0x55,0x55,0x57,0x55,0x50,0x55,0x55,0x05,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xAF,0xFF,0xEF,0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
0x55,0x57,0x55,0x41,0x54,0x15,0x05,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
0xFF,0xAF,0xFF,0xEF,0xEA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x41,0x55,0x55,0x55,
0x57,0x55,0x45,0x50,0x05,0x05,0x55,0x55,0x75,0x50,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xAF,0xAF,0xEF,0xFA,0xBF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x41,0x55,0x55,0x55,0x57,
0x55,0x41,0x54,0x01,0x05,0x55,0x55,0x75,0x50,0x15,0x55,0x55,0x55,0x7F,0xFF,0xAF,
0xAF,0xEF,0xFA,0xBF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x41,0x00,0x05,0x55,0x57,0x55,
0x41,0x50,0x40,0x05,0x55,0x55,0x75,0x50,0x55,0x55,0x55,0x55,0x7F,0xFF,0xAF,0xAF,
0xEF,0xEA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x01,0x00,0x05,0x55,0x57,0x55,0x41,
0x40,0x50,0x05,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xAF,0xAB,0xEF,
0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x01,0x05,0x05,0x55,0x57,0x55,0x40,0x00,
0x54,0x05,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xAF,0xAA,0xAE,0xAF,
0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x50,0x01,0x55,
0x05,0x55,0x55,0x75,0x55,0x55,0x54,0x05,0x55,0x7F,0xFF,0xAF,0xEA,0xAA,0xBF,0xFF,
0xFF,0xFF,0x55,0x5D,0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x75,0x55,0x55,0x55,0x05,0x55,0x7F,0xFF,0xAB,0xFF,0xFA,0xBF,0xFF,0xFF,
0xFF,0x55,0x5D,0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x15,0x55,0x55,0x55,
0x55,0x75,0x55,0x55,0x55,0x01,0x55,0x7F,0xFF,0xAA,0xBF,0xEA,0xFF,0xFF,0xFF,0xFF,
0x55,0x5D,0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x05,0x55,0x55,0x55,0x55,
0x75,0x50,0x00,0x00,0x01,0x55,0x7F,0xFF,0xEA,0xBF,0xEB,0xFF,0xFF,0xFF,0xFF,0x55,
0x5D,0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x00,0x55,0x55,0x55,0x55,0x75,
0x50,0x00,0x00,0x01,0x55,0x7F,0xFF,0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x00,0x05,0x55,0x55,0x55,0x75,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,
0x10,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x14,0x00,0x55,0x55,0x55,0x75,0x55,0x55,
0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,
0x41,0x00,0x05,0x55,0x57,0x55,0x54,0x15,0x40,0x05,0x55,0x55,0x75,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x41,
0x00,0x05,0x55,0x57,0x55,0x54,0x15,0x54,0x05,0x55,0x55,0x75,0x54,0x15,0x55,0x41,
0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x41,0x55,
0x55,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,0x54,0x05,0x55,0x41,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x41,0x55,0x55,
0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,0x50,0x15,0x05,0x41,0x55,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
0x57,0x55,0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x50,0x54,0x01,0x41,0x55,0x7F,0xFF,
0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
0x55,0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x50,0x55,0x00,0x41,0x55,0x7F,0xFE,0xAA,
0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x54,0x55,0x55,0x55,0x57,0x55,
0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x50,0x54,0x10,0x01,0x55,0x7F,0xFF,0xEA,0xAA,
0xAA,0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x50,0x15,0x55,0x55,0x57,0x55,0x54,
0x05,0x55,0x55,0x55,0x55,0x75,0x50,0x10,0x14,0x01,0x55,0x7F,0xFF,0xFF,0xAA,0xAA,
0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x54,0x05,0x55,0x55,0x57,0x55,0x54,0x00,
0x55,0x55,0x55,0x55,0x75,0x50,0x00,0x15,0x01,0x55,0x7F,0xFF,0xFA,0xFF,0xFB,0xEB,
0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x00,0x05,0x55,0x55,0x57,0x55,0x54,0x00,0x05,
0x55,0x55,0x55,0x75,0x55,0x00,0x55,0x41,0x55,0x7F,0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,
0xFF,0xFF,0x55,0x5D,0x54,0x00,0x00,0x41,0x55,0x55,0x57,0x55,0x54,0x14,0x00,0x55,
0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFA,0xFA,0xBB,0xEB,0xFF,0xFF,
0xFF,0x55,0x5D,0x54,0x55,0x50,0x40,0x55,0x55,0x57,0x55,0x54,0x15,0x40,0x05,0x55,
0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFA,0xFA,0xAB,0xEB,0xFF,0xFF,0xFF,
0x55,0x5D,0x54,0x55,0x50,0x50,0x15,0x55,0x57,0x55,0x54,0x15,0x54,0x05,0x55,0x55,
0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFA,0xFB,0xEA,0xEB,0xBF,0xFF,0xFF,0x55,
0x5D,0x54,0x50,0x50,0x55,0x05,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,
0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFA,0xFA,0xFA,0xAA,0xBF,0xFF,0xFF,0x55,0x5D,
0x54,0x50,0x50,0x55,0x05,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xAA,0xAA,0xBB,0xAA,0xBF,0xFF,0xFF,0x55,0x5D,0x54,
0x50,0x50,0x54,0x05,0x55,0x57,0x55,0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x55,0x55,
0x55,0x55,0x55,0x7F,0xFF,0xAA,0xAA,0xBB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,
0x50,0x50,0x55,0x55,0x57,0x55,0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x00,
0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
0x55,0x7F,0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x55,0x00,0x01,
0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x01,0x54,0x05,0x55,
0x55,0x57,0x55,0x50,0x05,0x51,0x55,0x55,0x55,0x75,0x41,0x41,0x55,0x41,0x55,0x7F,
0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x01,0x54,0x15,0x55,0x55,
0x57,0x55,0x50,0x01,0x00,0x15,0x55,0x55,0x75,0x41,0x41,0x55,0x41,0x55,0x7F,0xFF,
0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x50,0x15,0x55,0x55,0x57,
0x55,0x41,0x40,0x00,0x05,0x55,0x55,0x75,0x41,0x40,0x01,0x41,0x55,0x7F,0xFF,0xFA,
0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,
0x41,0x50,0x15,0x05,0x55,0x55,0x75,0x40,0x40,0x01,0x41,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x41,
0x50,0x55,0x05,0x55,0x55,0x75,0x50,0x41,0x41,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x41,0x50,
0x55,0x05,0x55,0x55,0x75,0x50,0x41,0x41,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x41,0x50,0x14,
0x05,0x55,0x55,0x75,0x54,0x05,0x41,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x40,0x00,0x00,0x05,
0x55,0x55,0x75,0x55,0x00,0x00,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x50,0x01,0x00,0x15,0x55,
0x55,0x75,0x55,0x00,0x00,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x50,0x15,0x55,0x55,0x55,0x55,
0x75,0x54,0x05,0x41,0x41,0x55,0x7F,0xFF,0xEB,0xFB,0xEA,0xFF,0xFF,0xFF,0xFF,0x55,
0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
0x50,0x41,0x41,0x00,0x55,0x7F,0xFF,0xEA,0xEA,0xFA,0xAF,0xFF,0xFF,0xFF,0x55,0x5D,
0x55,0x40,0x05,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,
0x41,0x41,0x00,0x55,0x7F,0xFF,0xFA,0xEA,0xAB,0xAA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
0x00,0x00,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x40,
0x01,0x41,0x55,0x7F,0xFF,0xFA,0xEF,0xAB,0xFA,0xBF,0xFF,0xFF,0x55,0x5D,0x54,0x05,
0x00,0x05,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x40,0x01,
0x41,0x55,0x7F,0xFF,0xEA,0xFA,0xEA,0xBF,0xBF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x40,
0x00,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x41,0x55,0x41,
0x55,0x7F,0xFF,0xAA,0xBF,0xFE,0xBF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x50,0x40,
0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x41,0x55,0x41,0x55,
0x7F,0xFF,0xFA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x50,0x54,0x15,
0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
0xFF,0xFF,0xFA,0xAA,0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x40,0x55,0x15,0x55,
0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xAA,0xAA,0xBE,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x01,0x55,0x55,0x55,0x57,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,0x7F,0xFF,0xFF,
0xAF,0xBE,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x01,0x55,0x55,0x55,0x57,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,0x7F,0xFF,0xEA,0xAA,
0xBE,0xEA,0xBF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x15,0x55,0x55,0x55,0x57,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x14,0x15,0x55,0x7F,0xFF,0xEA,0xAA,0xBE,
0xEA,0xBF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x04,0x15,0x55,0x7F,0xFF,0xFF,0xAF,0xBE,0xEA,
0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x55,0x55,0x01,0x55,0x55,0x57,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x75,0x55,0x54,0x04,0x15,0x55,0x7F,0xFF,0xEA,0xAA,0xBE,0xEB,0xFF,
0xFF,0xFF,0x55,0x5D,0x54,0x55,0x55,0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x75,0x55,0x40,0x14,0x15,0x55,0x7F,0xFF,0xEF,0xAF,0xBE,0xEB,0xFF,0xFF,
0xFF,0x55,0x5D,0x54,0x50,0x04,0x00,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x75,0x41,0x41,0x54,0x15,0x55,0x7F,0xFF,0xAF,0xAF,0xBE,0xAB,0xFF,0xFF,0xFF,
0x55,0x5D,0x54,0x50,0x04,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x75,0x41,0x50,0x54,0x15,0x55,0x7F,0xFF,0xAA,0xAA,0xBE,0xAB,0xFF,0xFF,0xFF,0x55,
0x5D,0x54,0x15,0x45,0x55,0x01,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
0x41,0x55,0x54,0x15,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
0x54,0x15,0x45,0x41,0x45,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,
0x55,0x54,0x15,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,
0x05,0x45,0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,
0x00,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,
0x45,0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,
0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x45,
0x00,0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x54,0x00,0x00,0x00,
0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x05,0x44,0x00,
0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x15,0x44,0x10,0x55,
0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x44,0x14,0x55,0x55,
0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,0x7F,0xFF,
0xFF,0xFA,0xFF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x04,0x14,0x15,0x55,0x57,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
0xFE,0xAF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x04,0x14,0x15,0x55,0x57,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xAA,0xAA,
0xAA,0xBA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x55,0x54,0x01,0x05,0x55,0x57,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x55,0x55,0x55,0x7F,0xFF,0xEB,0xFF,0xEA,
0xAA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x55,0x55,0x01,0x55,0x55,0x57,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x44,0x00,0x55,0x7F,0xFF,0xEB,0xFF,0xEF,0xEA,
0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x75,0x41,0x10,0x44,0x00,0x55,0x7F,0xFF,0xEA,0xAA,0xAF,0xFA,0xFF,
0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x75,0x41,0x14,0x44,0x50,0x55,0x7F,0xFF,0xEA,0xAA,0xAF,0xFA,0xFF,0xFF,
0xFF,0x55,0x5D,0x54,0x14,0x11,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x75,0x41,0x14,0x44,0x40,0x55,0x7F,0xFF,0xFF,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x55,0x5D,0x54,0x14,0x10,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x75,0x41,0x04,0x44,0x00,0x55,0x7F,0xFF,0xFF,0xAF,0xAF,0xFA,0xFF,0xFF,0xFF,0x55,
0x5D,0x54,0x14,0x14,0x00,0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
0x41,0x04,0x44,0x50,0x55,0x7F,0xFF,0xFF,0xAF,0xAA,0xBA,0xFF,0xFF,0xFF,0x55,0x5D,
0x54,0x04,0x15,0x00,0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,
0x04,0x00,0x00,0x55,0x7F,0xFF,0xFF,0xAF,0xAA,0xBA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
0x04,0x10,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x04,
0x00,0x00,0x55,0x7F,0xFF,0xAF,0xAF,0xBF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x40,
0x10,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x44,
0x50,0x55,0x7F,0xFF,0xAF,0xAF,0xBF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x40,0x10,
0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x00,0x44,0x00,
0x55,0x7F,0xFF,0xAF,0xAF,0xAF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x04,0x00,
0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x14,0x44,0x40,0x55,
0x7F,0xFF,0xAF,0xFF,0xAA,0xAA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x05,0x55,0x55,
0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x14,0x44,0x50,0x55,0x7F,
0xFF,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x40,0x14,0x00,0x15,0x55,
0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x10,0x44,0x00,0x55,0x7F,0xFF,
0xEA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x40,0x14,0x00,0x15,0x55,0x57,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x44,0x00,0x55,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x04,0x14,0x14,0x15,0x55,0x57,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x04,0x14,0x14,0x15,0x55,0x57,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x14,0x14,0x00,0x15,0x55,0x57,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x14,0x14,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x75,0x50,0x15,0x50,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x55,0x5D,0x54,0x14,0x15,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x75,0x54,0x15,0x50,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x75,0x55,0x05,0x50,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x75,0x55,0x40,0x10,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
0x41,0x50,0x00,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,
0x55,0x40,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x55,
0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,
0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,
0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,0x00,
0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x00,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x51,0x55,0x55,0x55,
0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x50,0x01,0x55,0x55,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x15,0x55,0x55,0x55,
0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x40,0x41,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x01,0x55,0x55,0x55,0x57,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x41,0x50,0x55,0x55,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x00,0x15,0x55,0x55,0x57,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x05,0x54,0x05,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x50,0x01,0x55,0x55,0x57,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x75,0x50,0x05,0x54,0x15,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x55,0x00,0x15,0x55,0x57,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x75,0x54,0x15,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x55,0x50,0x15,0x55,0x57,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x55,0x5D,0x54,0x00,0x00,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x55,0x5D,0x54,0x00,0x00,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x75,0x41,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x55,0x5D,0x55,0x50,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x75,0x40,0x00,0x00,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
0x5D,0x55,0x50,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
0x54,0x00,0x00,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,
0x55,0x54,0x10,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,
0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x45,0x04,
0x14,0x10,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,
0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x01,0x04,0x14,
0x10,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x00,
0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,0x00,0x00,0x10,
0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x45,
0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x54,0x00,0x00,0x10,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x55,0x45,0x15,
0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x04,0x14,0x10,0x55,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x10,0x51,0x45,0x15,0x55,
0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x04,0x14,0x10,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x51,0x45,0x15,0x55,0x57,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x04,0x14,0x10,0x55,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x51,0x45,0x15,0x55,0x57,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,0x10,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x51,0x45,0x15,0x55,0x57,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,0x10,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x51,0x45,0x15,0x55,0x57,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x75,0x55,0x04,0x10,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x10,0x51,0x45,0x15,0x55,0x57,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x75,0x55,0x04,0x14,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x55,0x5D,0x54,0x50,0x51,0x45,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x75,0x55,0x05,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x55,0x5D,0x54,0x00,0x51,0x45,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x55,0x5D,0x54,0x10,0x51,0x40,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
0x5D,0x50,0x50,0x51,0x40,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
0x50,0x50,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,
0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,
0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,
0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,
0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,};
const unsigned char gImage_2in13b_V4b[4000] = { /*0X00,0X01,0X7A,0X00,0XFA,0X00,*/

View file

@ -0,0 +1,237 @@
/*****************************************************************************
* | File : EPD_2in13g.c
* | Author : Waveshare team
* | Function : 2inch13 e-paper (G)
* | Info :
*----------------
* | This version: V1.0
* | Date : 2023-04-07
* | Info :
* -----------------------------------------------------------------------------
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documnetation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
******************************************************************************/
#include "EPD_2in13g.h"
#include "Debug.h"
UWORD Source_BITS = EPD_2IN13G_WIDTH;
UWORD Gate_BITS = EPD_2IN13G_HEIGHT;
/******************************************************************************
function : Software reset
parameter:
******************************************************************************/
static void EPD_2IN13G_Reset(void)
{
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}
/******************************************************************************
function : send command
parameter:
Reg : Command register
******************************************************************************/
static void EPD_2IN13G_SendCommand(UBYTE Reg)
{
DEV_Digital_Write(EPD_DC_PIN, 0);
DEV_Digital_Write(EPD_CS_PIN, 0);
DEV_SPI_WriteByte(Reg);
DEV_Digital_Write(EPD_CS_PIN, 1);
}
/******************************************************************************
function : send data
parameter:
Data : Write data
******************************************************************************/
static void EPD_2IN13G_SendData(UBYTE Data)
{
DEV_Digital_Write(EPD_DC_PIN, 1);
DEV_Digital_Write(EPD_CS_PIN, 0);
DEV_SPI_WriteByte(Data);
DEV_Digital_Write(EPD_CS_PIN, 1);
}
/******************************************************************************
function : Wait until the busy_pin goes HIGH
parameter:
******************************************************************************/
void EPD_2IN13G_ReadBusy(void)
{
Debug("e-Paper busy\r\n");
DEV_Delay_ms(100);
while(DEV_Digital_Read(EPD_BUSY_PIN) != 1) { //HIGH: idle, LOW: busy
DEV_Delay_ms(100);
}
Debug("e-Paper busy release\r\n");
}
/******************************************************************************
function : Turn On Display
parameter:
******************************************************************************/
static void EPD_2IN13G_TurnOnDisplay(void)
{
EPD_2IN13G_SendCommand(0x12); // DISPLAY_REFRESH
EPD_2IN13G_SendData(0x00);
EPD_2IN13G_ReadBusy();
}
/******************************************************************************
function : Setting the display window
parameter:
******************************************************************************/
static void EPD_2IN9_V2_SetWindows(void)
{
if(EPD_2IN13G_WIDTH < 128)
Source_BITS = 128;
EPD_2IN13G_SendCommand(0x61); //TRES
EPD_2IN13G_SendData(Source_BITS/256); // EPD_2IN13G_WIDTH_H
EPD_2IN13G_SendData(Source_BITS%256); // EPD_2IN13G_WIDTH_L
EPD_2IN13G_SendData(Gate_BITS/256); // EPD_2IN13G_HEIGHT_H
EPD_2IN13G_SendData(Gate_BITS%256); // EPD_2IN13G_HEIGHT_L
}
/******************************************************************************
function : Initialize the e-Paper register
parameter:
******************************************************************************/
void EPD_2IN13G_Init(void)
{
EPD_2IN13G_Reset();
EPD_2IN13G_ReadBusy();
EPD_2IN13G_SendCommand(0x4D);
EPD_2IN13G_SendData(0x78);
EPD_2IN13G_SendCommand(0x00); //PSR
EPD_2IN13G_SendData(0x0F);
EPD_2IN13G_SendData(0x29);
EPD_2IN13G_SendCommand(0x01); //PWRR
EPD_2IN13G_SendData(0x07);
EPD_2IN13G_SendData(0x00);
EPD_2IN13G_SendCommand(0x03); //POFS
EPD_2IN13G_SendData(0x10);
EPD_2IN13G_SendData(0x54);
EPD_2IN13G_SendData(0x44);
EPD_2IN13G_SendCommand(0x06); //BTST_P
EPD_2IN13G_SendData(0x05);
EPD_2IN13G_SendData(0x00);
EPD_2IN13G_SendData(0x3F);
EPD_2IN13G_SendData(0x0A);
EPD_2IN13G_SendData(0x25);
EPD_2IN13G_SendData(0x12);
EPD_2IN13G_SendData(0x1A);
EPD_2IN13G_SendCommand(0x50); //CDI
EPD_2IN13G_SendData(0x37);
EPD_2IN13G_SendCommand(0x60); //TCON
EPD_2IN13G_SendData(0x02);
EPD_2IN13G_SendData(0x02);
EPD_2IN9_V2_SetWindows(); // Setting the display window
EPD_2IN13G_SendCommand(0xE7);
EPD_2IN13G_SendData(0x1C);
EPD_2IN13G_SendCommand(0xE3);
EPD_2IN13G_SendData(0x22);
EPD_2IN13G_SendCommand(0xB4);
EPD_2IN13G_SendData(0xD0);
EPD_2IN13G_SendCommand(0xB5);
EPD_2IN13G_SendData(0x03);
EPD_2IN13G_SendCommand(0xE9);
EPD_2IN13G_SendData(0x01);
EPD_2IN13G_SendCommand(0x30);
EPD_2IN13G_SendData(0x08);
EPD_2IN13G_SendCommand(0x04);
EPD_2IN13G_ReadBusy();
}
/******************************************************************************
function : Clear screen
parameter:
******************************************************************************/
void EPD_2IN13G_Clear(UBYTE color)
{
UWORD Width, Height;
Width = Source_BITS / 4 ;
Height = EPD_2IN13G_HEIGHT;
EPD_2IN13G_SendCommand(0x10);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN13G_SendData((color << 6) | (color << 4) | (color << 2) | color);
}
}
EPD_2IN13G_TurnOnDisplay();
}
/******************************************************************************
function : Sends the image buffer in RAM to e-Paper and displays
parameter:
******************************************************************************/
void EPD_2IN13G_Display(UBYTE *Image)
{
UWORD Width, Height;
Width = (EPD_2IN13G_WIDTH % 4 == 0)? (EPD_2IN13G_WIDTH / 4 ): (EPD_2IN13G_WIDTH / 4 + 1);
Height = EPD_2IN13G_HEIGHT;
EPD_2IN13G_SendCommand(0x10);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < (Source_BITS / 4); i++) {
if(i < 31 ) EPD_2IN13G_SendData(Image[i + j * Width]);
else EPD_2IN13G_SendData(0x00);
}
}
EPD_2IN13G_TurnOnDisplay();
}
/******************************************************************************
function : Enter sleep mode
parameter:
******************************************************************************/
void EPD_2IN13G_Sleep(void)
{
EPD_2IN13G_SendCommand(0x02); //power off
EPD_2IN13G_ReadBusy(); //waiting for the electronic paper IC to release the idle signal
DEV_Delay_ms(100); //!!!The delay here is necessary,100mS at least!!!
EPD_2IN13G_SendCommand(0x07); //deep sleep
EPD_2IN13G_SendData(0XA5);
}

View file

@ -0,0 +1,32 @@
/*****************************************************************************
* | File : EPD_2in13g.h
* | Author : Waveshare team
* | Function : 2inch13 e-paper (G)
* | Info :
*----------------
* | This version: V1.0
* | Date : 2023-04-07
* | Info :
* -----------------------------------------------------------------------------
******************************************************************************/
#ifndef __EPD_2IN13G_H_
#define __EPD_2IN13G_H_
#include "DEV_Config.h"
// Display resolution
#define EPD_2IN13G_WIDTH 122
#define EPD_2IN13G_HEIGHT 250
// Color
#define EPD_2IN13G_BLACK 0x0
#define EPD_2IN13G_WHITE 0x1
#define EPD_2IN13G_YELLOW 0x2
#define EPD_2IN13G_RED 0x3
void EPD_2IN13G_Init(void);
void EPD_2IN13G_Clear(UBYTE color);
void EPD_2IN13G_Display(UBYTE *Image);
void EPD_2IN13G_Sleep(void);
#endif