驴友花雕 发表于 2020-6-26 07:55:57

MicroPython动手做(35)——体验小游戏



小游戏 (体积较小、玩法简单的游戏)
小游戏是一个较模糊的概念,它是相对于体积庞大的单机游戏及网络游戏而言的,泛指所有体积较小、玩法简单的游戏,通常这类游戏以休闲益智类为主,有单机版有网页版,在网页上嵌入的多为FLASH格式。当下小游戏主要是指在线玩的flash版本游戏,统称小游戏,其实小游戏还包含单机游戏,小型游戏机等。一般游戏大小小于10m的游戏都统称为小游戏,一些街机类小游戏。因其游戏安装简便,耐玩性强,无依赖性而广受白领及小朋友的喜爱。

“小游戏”这个词的型含义其实很简单,它不是一些大的游戏,不必花费更多的时间和精力。小游戏是原始的游戏娱乐方式,小游戏本身是为了叫人们在工作,学习后的一种娱乐、休闲的一种方式,不是为了叫玩家为之花费金钱、花费精力,更不是叫玩家为他痴迷。小游戏也可以理解为“Flash游戏”,是以SWF为后缀的游戏的总称.这些游戏是通过Flash软件和 Flash 编程语言 Flash ActionScript 制作而成。由于Flash是矢量软件,所以小游戏放大后几乎不影响画面效果。Flash小游戏是一种新兴起的游戏形式,以游戏简单,操作方便,绿色,无需安装,文件体积小等优点渐渐被广大网友喜爱。

驴友花雕 发表于 2020-6-26 12:13:42

3、贪吃蛇(EVE)

开机时,由6个像素点组成的贪吃蛇出现在屏幕中央,默认向右移动,按下A或B,会逆时针或顺时针转向。

//MicroPython动手做(35)——小游戏
//贪吃蛇

#include <MPython.h>
#include <SimpleList.h>

// 动态变量
volatile float   mind_n_ShiWux, mind_n_ShiWuy, mind_n_FangXiange, mind_n_x, mind_n_y,
                   mind_n_ShenChangc, mind_n_FenShuf, mind_n_SheToux, mind_n_SheTouy,
                   mind_n_LieBiaod;
SimpleList<String> mind_l_X, mind_l_Y;
// 函数声明
void DF_ChiDaoShiWu();
void DF_PengBi();
void DF_KaiJiDongHua();
void DF_TanChiSheHuoDong();
void DF_ChuShiHuaChangDu();
void DF_AnJian();
// 静态常量
const uint8_t imageMatrix[] = {
        {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,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,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xfe,0x7f,0xef,0x7f,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf2,0x5f,0xfe,0x4f,0xef,0x3f,0xf3,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xf1,0x4f,0xd3,0x7f,0xf3,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xee,0x7,0xf0,0x4f,0x80,0x7f,0xc2,0x7e,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xee,0x87,0xf8,0x7f,0x80,0x7f,0xc2,0x7e,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf4,0x6f,0xe3,0x1f,0xce,0x5f,0xd2,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0x2f,0xf1,0x3f,0x9f,0xff,0xe1,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc6,0xef,0xec,0xdb,0xcd,0xdf,0xd2,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc6,0xef,0xec,0xdb,0xcd,0xdf,0xd2,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xe3,0xfc,0xbf,0x73,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xf3,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,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,0xfb,0x9f,0xbe,0x3f,0x38,0xf,0xfb,0x3c,0x30,0x80,0xe0,0x73,0xff,0xff,0xff,0xff,0xfb,0x9f,0xbe,0x3f,0x38,0xf,0xfb,0x3c,0x30,0x80,0xe0,0x73,0xff,0xff,0xff,0xff,0xe7,0xdf,0x9f,0x1e,0x39,0xef,0xe7,0xce,0x7b,0xde,0xf6,0x73,0xff,0xff,0xff,0xff,0xcf,0xff,0x4f,0x4e,0x39,0xdf,0xcf,0xef,0x7b,0xdf,0xf7,0x7b,0xff,0xff,0xff,0xff,0xcf,0xff,0x4f,0x65,0x38,0x1f,0xcf,0xe7,0x37,0xc1,0xf4,0xfb,0xff,0xff,0xff,0xff,0xcf,0xde,0xe7,0x63,0x39,0xdf,0xef,0xef,0xb7,0xdf,0xf6,0x7b,0xff,0xff,0xff,0xff,0xcf,0xde,0xe7,0x63,0x39,0xdf,0xef,0xef,0xb7,0xdf,0xf6,0x7b,0xff,0xff,0xff,0xff,0xe7,0xde,0xe7,0x73,0x39,0xf7,0xe7,0xcf,0x8f,0xdf,0x77,0x3f,0xff,0xff,0xff,0xff,0xf3,0xbc,0xf3,0x1f,0xf8,0x7,0xfb,0xbf,0xdf,0x80,0x43,0x13,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,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,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0x63,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x5f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x3d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0xfe,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3e,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xcf,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xfd,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x7,0xff,0xff,0xff,0xfe,0xff,0xfb,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x3,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xc3,0xe3,0xff,0xff,0xff,0xfb,0xff,0xff,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xc7,0xe3,0xff,0xff,0xff,0xf7,0xff,0xff,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xc7,0xf1,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0x9c,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xf1,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xe3,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xc3,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x3,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x7,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xed,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0x80,0x7f,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x0,0x3f,0xff,0xff,0xff,0xff,0xfc,0x3f,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xff,0xc,0x1f,0xff,0xff,0xfc,0x3f,0xff,0xbf,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xfe,0x3f,0x1f,0xff,0xff,0xf0,0xf,0xff,0xff,0xff,0xff,0xfd,0xf7,0xff,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xe0,0x7,0xff,0xcf,0xff,0xff,0xf7,0xef,0xff,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xc3,0x87,0xff,0xef,0xff,0xff,0xe7,0xcf,0xff,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xc7,0xe3,0xff,0xf7,0xff,0xff,0xff,0xf8,0x7f,0xff,0xff,0xfe,0x3f,0xf,0xff,0xff,0x8f,0xe3,0xff,0xfd,0xff,0xff,0x3f,0xcf,0xbf,0xff,0xff,0xfe,0x1f,0x1f,0xff,0xff,0x8f,0xe3,0xff,0xfe,0x7f,0xfe,0xef,0x3f,0xbf,0xbf,0xff,0xff,0xc,0x1f,0xff,0xff,0x8f,0xe3,0xff,0xff,0x7f,0xfd,0xff,0xff,0xff,0x1f,0xff,0xff,0x0,0x3f,0xff,0xff,0xc7,0xe3,0xff,0xff,0xf8,0x7f,0xdf,0xff,0xff,0xdf,0xff,0xff,0xc0,0xff,0xff,0xff,0xc7,0xc3,0xff,0xff,0xf7,0x7f,0xbf,0xff,0xed,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x7,0xff,0xff,0xf7,0x7f,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdc,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xf8,0xfd,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xfe,0xe9,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x81,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,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0x63,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x5f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x3d,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0xfe,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x7f,0xff,0xff,0xff,0xff,0xff,0x3e,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x80,0x1f,0xff,0xff,0xff,0xff,0xfb,0xff,0xcf,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xe,0x1f,0xff,0xff,0xff,0xff,0xf7,0xff,0xfd,0xff,0xbf,0xff,0xff,0xff,0xff,0xfe,0x3f,0x1f,0xff,0xff,0xff,0xff,0x9f,0xff,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xff,0xfe,0xff,0xfb,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xfe,0x3f,0xf,0xff,0xff,0xff,0xfb,0xff,0xff,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xfe,0x1f,0x1f,0xff,0xff,0xff,0xf7,0xff,0xff,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x0,0x1f,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0x9c,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x3f,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xed,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x7f,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x0,0x3f,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x3e,0x3f,0xff,0x7f,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xf0,0x3f,0xff,0xff,0xfc,0x7e,0x3f,0xfc,0x3f,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xe0,0x1f,0xff,0xff,0xfc,0x7f,0x1f,0xff,0xbf,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xc0,0x7,0xff,0xff,0xfc,0x7f,0x1f,0xff,0xff,0xff,0xff,0xfd,0xf7,0xff,0xff,0xff,0x87,0x87,0xff,0xff,0xfc,0x7f,0x1f,0xff,0xcf,0xff,0xff,0xf7,0xef,0xff,0xff,0xff,0x8f,0xc7,0xff,0xff,0xfc,0x7e,0x1f,0xff,0xef,0xff,0xff,0xe7,0xcf,0xff,0xff,0xff,0x8f,0xe3,0xff,0xff,0xfc,0x3e,0x3f,0xff,0xf7,0xff,0xff,0xff,0xf8,0x7f,0xff,0xff,0x8f,0xe3,0xff,0xff,0xfe,0x0,0x3f,0xff,0xfd,0xff,0xff,0x3f,0xcf,0xbf,0xff,0xff,0x8f,0xe3,0xff,0xff,0xff,0x0,0x7f,0xff,0xfe,0x7f,0xfe,0xef,0x3f,0xbf,0xbf,0xff,0x8f,0xc3,0xff,0xff,0xff,0x81,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0xff,0x1f,0xff,0x87,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x7f,0xdf,0xff,0xff,0xdf,0xff,0xc0,0x7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x7f,0xbf,0xff,0xed,0xff,0xff,0xe0,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x7f,0xff,0xff,0xf7,0xff,0xff,0xf0,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdc,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xf8,0xfd,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xfe,0xe9,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x81,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,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xfe,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x79,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xfc,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x7d,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0x9f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xfb,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x1f,0xff,0xff,0xff,0xfd,0xff,0xf7,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xf,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x8f,0x87,0xff,0xff,0xff,0xf7,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xc7,0xff,0xff,0xff,0xef,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xc7,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0x39,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xc7,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xc7,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0x8f,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0xf,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x1f,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf6,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xf8,0x7f,0xff,0xff,0xfd,0xf7,0xff,0xff,0xff,0xff,0x7,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0x3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0xff,0xc0,0xff,0xff,0x9f,0xff,0xff,0xef,0xdf,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0x80,0x3f,0xff,0xdf,0xff,0xff,0xcf,0x9f,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0x0,0x1f,0xff,0xef,0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xfe,0x1e,0x1f,0xff,0xfb,0xff,0xff,0x7f,0x1f,0x7f,0xff,0xff,0xff,0xf1,0xff,0xff,0xfe,0x3f,0x1f,0xff,0xfc,0xff,0xfc,0xde,0x7f,0x7f,0x7f,0xff,0xff,0xf1,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xfe,0xff,0xfb,0xff,0x7f,0xfe,0x3f,0xff,0xff,0xe1,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xf0,0xff,0xbf,0xff,0xff,0xbf,0xff,0xff,0x3,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xee,0xff,0x7f,0xff,0xdb,0xff,0xff,0xff,0x7,0xff,0xff,0xfe,0x3f,0x1f,0xff,0xff,0xee,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0x1f,0xff,0xff,0xfe,0x1e,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x7f,0xff,0xff,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xff,0xff,0xff,0xb9,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x77,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xf1,0xfb,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xfd,0xd3,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3,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,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,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,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x7f,0xff,0xff,0xff,0xff,0xff,0xc1,0xfe,0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x1f,0xff,0xff,0xff,0xff,0xfe,0x3c,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x83,0x7,0xff,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0x8f,0xc7,0xff,0xff,0xff,0xff,0xbf,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xe3,0xff,0xff,0xff,0xfd,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xe3,0xff,0xff,0xff,0xfb,0xff,0xf7,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0x8f,0xc3,0xff,0xff,0xff,0xf7,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xf,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xb9,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xf,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x3f,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0x9b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1,0xff,0xf7,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x0,0xff,0xfe,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x38,0x7f,0xf6,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7c,0x3f,0xf9,0x7f,0xff,0xff,0xfd,0x77,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xf8,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xf8,0xfe,0x3f,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xf8,0xfe,0x3f,0xff,0xdf,0xff,0xff,0xef,0xdf,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xf8,0xfe,0x3f,0xff,0xdf,0xff,0xff,0xcf,0x9f,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xfc,0x7c,0x3f,0xff,0xf7,0xff,0xff,0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xfc,0x38,0x7f,0xff,0xfb,0xff,0xff,0x7f,0x5f,0x3f,0xff,0xff,0xff,0xff,0x8f,0xff,0xfe,0x0,0xff,0xff,0xfc,0xff,0xfc,0xcf,0x3f,0x3f,0x3f,0xff,0xff,0xff,0x1f,0xff,0xff,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0x3f,0xff,0xff,0xff,0x1f,0xff,0xff,0xc7,0xff,0xff,0xff,0xf0,0x7f,0xff,0xff,0xdd,0xbf,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0x7f,0xef,0xdb,0xbf,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xee,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0x7d,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbd,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x77,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xfc,0xfb,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xf9,0xfb,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xfd,0xdb,0xfc,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3,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,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xef,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xe8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xef,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3f,0xe7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xbf,0xcf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xdf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x7f,0xf8,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0x9f,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xbf,0xff,0x7f,0xbf,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x3f,0xff,0xff,0xfe,0xff,0xff,0xff,0xdf,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xe,0x1f,0xff,0xff,0xfe,0xff,0xff,0xef,0xdf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x1f,0xff,0xff,0xfd,0xff,0xff,0xff,0xf1,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x8f,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x1f,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xe,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xef,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0xff,0xff,0xff,0xce,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0xff,0xf9,0xff,0xff,0xfc,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x0,0x7f,0xfd,0xff,0xff,0xfd,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x38,0x7f,0xfe,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7e,0x3f,0xff,0xbf,0xff,0xef,0xe9,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xfe,0x3f,0xff,0xcf,0xff,0x9d,0xe7,0xf7,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xfe,0x3f,0xff,0xfc,0x7,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xfe,0x3f,0xff,0xff,0x4f,0xff,0xff,0xfb,0xb3,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7e,0x3f,0xff,0xfe,0xcf,0xef,0xff,0xf9,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7c,0x3f,0xff,0xfd,0xef,0xff,0xfe,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x0,0x7f,0xff,0xff,0xef,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x0,0xff,0xff,0xfb,0xff,0xef,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x81,0xff,0xff,0xfe,0xff,0x6f,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xdf,0x79,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x3f,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xb7,0x3f,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xe7,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,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xef,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xe8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xef,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3f,0xe7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xbf,0xcf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xdf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x7f,0xf8,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0x9f,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xff,0xff,0xff,0xff,0xbf,0xff,0x7f,0xbf,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xdf,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xfe,0xff,0xff,0xef,0xdf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xf1,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xef,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0xff,0xff,0xff,0xce,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xfc,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xfd,0xff,0xff,0xfd,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x81,0xff,0xff,0xfe,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x0,0x7f,0xff,0xff,0xbf,0xff,0xef,0xe9,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x18,0x7f,0xff,0xff,0xcf,0xff,0x9d,0xe7,0xf7,0xe7,0xff,0xff,0xff,0xff,0xff,0xfc,0x7e,0x3f,0xff,0xff,0xfc,0x7,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xfc,0x7e,0x3f,0xff,0xff,0xff,0x4f,0xff,0xff,0xfb,0xb3,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x3f,0xff,0xff,0xfe,0xcf,0xef,0xff,0xf9,0xf7,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x3f,0xff,0xff,0xfd,0xef,0xff,0xfe,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xfc,0x7e,0x3f,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xfc,0x7e,0x3f,0xff,0xff,0xfb,0xff,0xef,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xfe,0x18,0x7f,0xff,0xff,0xfe,0xff,0x6f,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xfe,0x0,0x7f,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0xfb,0xff,0xff,0xdf,0x79,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x3f,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xb7,0x3f,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xe7,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,0xf0,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xdf,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xec,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3f,0xe7,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xdf,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xef,0xdf,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf8,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0x3f,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xbf,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0x7f,0xff,0xff,0xdf,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xfd,0xff,0xff,0xff,0xf8,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xf7,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xe7,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xf9,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xf9,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,0xef,0xff,0xff,0xff,0xf7,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6f,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,0xff,0xff,0xff,0xdf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbe,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,0xfd,0xff,0xff,0xfe,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xf9,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xf1,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0x8c,0xe7,0xf3,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x1,0xff,0xff,0xff,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0x6f,0xff,0xff,0xfd,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x7f,0xff,0xfe,0xef,0xf7,0xff,0xfd,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x3f,0xff,0xff,0xef,0xbf,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe,0x1f,0xff,0xfd,0xf7,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x1f,0xff,0xfd,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x9f,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x9f,0xff,0xfb,0xef,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x9f,0xff,0xfb,0xff,0xff,0xf7,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x9f,0xff,0xff,0xff,0xff,0xdf,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x1f,0xff,0xfd,0xff,0xff,0x3f,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe,0x1f,0xff,0xff,0xff,0x33,0x3f,0xc3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x3f,0xff,0xff,0x7f,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x7f,0xff,0xff,0x7f,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0x9f,0x97,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,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc1,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,0x7f,0x7f,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xbf,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xd1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x7f,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x9f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0x7f,0xbf,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xbf,0x7f,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xe3,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xfe,0x3f,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfc,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xbf,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xfe,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,0x7f,0xff,0xff,0xff,0xf6,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe6,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xde,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xbf,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x5f,0xff,0xff,0xff,0xdd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xfb,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xe7,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xdf,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xdf,0xd7,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfe,0x33,0xdf,0xcf,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x7,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xbf,0xff,0xff,0xf7,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xf9,0xbf,0xdf,0xff,0xf2,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf,0xff,0xff,0xff,0x9f,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7,0xff,0xff,0xf7,0xdb,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0x9f,0xff,0xff,0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xdd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xf7,0xff,0xff,0x7e,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0xf7,0xff,0xfe,0x7f,0x77,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0xfc,0xce,0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7,0xff,0xff,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xfe,0x7f,0x4f,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,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,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0x7f,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0x47,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0x3d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcd,0xfe,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3e,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xc7,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xfc,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfd,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0x88,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,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,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x7f,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x3f,0xff,0xff,0xfe,0x77,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xe7,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0x3f,0x4f,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x7f,0xfc,0xef,0x3f,0xbf,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x3f,0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfa,0x7f,0xff,0xff,0xdd,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x7f,0x7f,0xff,0xed,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0x7d,0xff,0xf7,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xfb,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xde,0x7f,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfb,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xf9,0xfd,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xfd,0xb9,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0x3f,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,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xfe,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xfe,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x7b,0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xfc,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x39,0xfd,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0x7f,0xff,0xff,0xfc,0xfd,0xfb,0xff,0xff,0xff,0xff,0xfb,0xfd,0xdf,0x7f,0xfe,0xd7,0xff,0xff,0xff,0xef,0xff,0xfb,0xff,0x7f,0xff,0xef,0xbf,0xbb,0xb3,0xff,0x6b,0x3e,0x7f,0xff,0xff,0xbf,0xff,0xf9,0xff,0x7f,0xff,0xff,0xff,0x9d,0xfb,0xff,0x6c,0x7e,0x7f,0xff,0xff,0x7f,0xff,0xf1,0xff,0xff,0xff,0xff,0xd3,0xff,0xff,0xff,0x7f,0x1f,0xff,0xff,0xfc,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xfb,0xff,0xbe,0xff,0x7f,0x9e,0xff,0xff,0xfb,0xff,0xe7,0xfb,0xff,0x7f,0xff,0xff,0xff,0xfb,0xff,0xd7,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xfe,0xff,0xff,0xfa,0xfe,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xef,0xff,0xfe,0xfd,0xff,0xff,0xff,0xf9,0xd9,0xf9,0xbf,0x7f,0x7f,0xd3,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0xff,0xff,0xf7,0xbf,0xfb,0xde,0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xf7,0xbf,0xfe,0x7d,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0x7b,0xff,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xfe,0x3f,0xfd,0xd7,0xff,0xff,0xbe,0x7f,0xfe,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc4,0x7f,0xff,0xfc,0x7b,0xbf,0xf7,0xff,0xfe,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xe2,0xff,0xff,0xfd,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,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,0xf9,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xd9,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xff,0xff,0xd7,0xff,0xff,0xff,0xf8,0xff,0xff,0xec,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcc,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xef,0xff,0xff,0xfd,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xff,0xef,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0x5f,0xff,0xfd,0xdc,0xff,0xff,0xff,0x9f,0xff,0xff,0xcf,0xbf,0xff,0xff,0xff,0xfe,0x5f,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x71,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xf7,0xff,0xfe,0xfe,0xde,0xff,0xff,0xff,0xd0,0xff,0xff,0xff,0x17,0xff,0xff,0xff,0xf9,0xff,0xfc,0x7e,0xbe,0xff,0xff,0xfe,0x3b,0xff,0xff,0xdf,0x5f,0xff,0xff,0xff,0xfc,0xff,0xf1,0xde,0x7f,0x7f,0x7f,0xfc,0x27,0xff,0xff,0xfd,0xf7,0xff,0xff,0xff,0xff,0xc0,0x7f,0xff,0xff,0xff,0x7f,0xff,0x6f,0xff,0xfd,0xdf,0xf0,0xff,0xff,0xff,0xff,0xed,0xff,0xff,0xff,0xbf,0x7f,0xff,0x3f,0xff,0xff,0xef,0xfb,0xff,0xff,0xff,0xff,0xed,0xfe,0xdf,0xff,0xdf,0x7f,0xff,0xff,0xff,0xfe,0xff,0xf7,0xff,0xff,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xbf,0xdf,0xff,0xff,0xfe,0xff,0xff,0xdf,0xdf,0xff,0xfb,0x3f,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xfb,0xff,0xff,0xff,0x7f,0xff,0xab,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xf7,0xff,0xfb,0xbf,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xcf,0xff,0xff,0xff,0xbf,0xff,0xfb,0xf7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xf9,0xf3,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xef,0xfe,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3,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,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xfe,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xfe,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x7b,0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xfc,0xfb,0xff,0xff,0xff,0x3f,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x39,0xfd,0xfd,0xff,0xff,0xff,0xff,0xff,0xf9,0xdf,0xff,0xfc,0x7f,0xff,0xff,0xfc,0xfd,0xfb,0xff,0xff,0xff,0xff,0xfa,0xfd,0x5b,0x6f,0xf6,0x80,0x7f,0xff,0xff,0xef,0xff,0xfb,0xff,0x7f,0xff,0xe7,0xbd,0xbb,0xb3,0xff,0x60,0x3e,0x7f,0xff,0xff,0xbf,0xff,0xf9,0xff,0x7f,0xff,0xfe,0xf8,0x9d,0xbb,0xff,0x48,0x7e,0x7f,0xff,0xff,0x7f,0xff,0xf1,0xff,0xff,0xff,0xf7,0xc2,0xfd,0xdf,0xff,0x49,0x1f,0xff,0xff,0xfc,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xf3,0xff,0xbe,0x27,0x4d,0x9e,0xff,0xff,0xfb,0xff,0xe7,0xfb,0xff,0x7f,0xff,0xff,0xf3,0xf9,0xde,0x47,0x4b,0x7c,0xff,0xff,0xf7,0xff,0xff,0xff,0xfe,0xff,0xff,0xf8,0x90,0x7f,0xbf,0x1f,0x51,0xfd,0xff,0xff,0xef,0xff,0xfe,0xfd,0xff,0xff,0xff,0xf9,0xd1,0x79,0xbe,0x3f,0x6f,0xd3,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0xff,0xff,0xf7,0xbe,0xfb,0xde,0x7f,0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xbf,0x7d,0x7d,0xff,0xff,0xff,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xfe,0x7b,0xff,0xfb,0x1e,0x7f,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xfe,0x3f,0xf9,0xd7,0xff,0xf5,0x9e,0x7f,0xfe,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc4,0x7f,0xf9,0xbc,0x63,0x1d,0xd7,0xff,0xfe,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xe2,0xff,0xff,0xfd,0xef,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,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,0xf9,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xd9,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xff,0xff,0xd7,0xff,0xff,0xff,0xf8,0xff,0xff,0xec,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x7f,0xcc,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xeb,0xff,0xff,0x7f,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xff,0xe3,0xff,0xff,0x23,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xef,0x5f,0xff,0xfd,0xdc,0xff,0xff,0xff,0x9f,0xff,0xff,0xcf,0xbf,0xff,0xff,0xff,0xce,0x5f,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x71,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xf7,0xff,0xfe,0xfe,0xde,0xff,0xff,0xff,0xd0,0xff,0xff,0xcf,0x17,0xff,0xff,0xff,0xf9,0xff,0xfc,0x7e,0xbe,0xff,0xff,0xfe,0xb,0xff,0xff,0xdf,0x5f,0xff,0xff,0xff,0xfc,0xff,0xf1,0xde,0x7f,0x7f,0x7f,0xf8,0x7,0xff,0xff,0xfd,0xf7,0xff,0xff,0xff,0xff,0xc0,0x7f,0xff,0xff,0xff,0x7f,0xfd,0x4f,0xff,0xfd,0xdf,0xf0,0xff,0xff,0xff,0xff,0xed,0xff,0xff,0xff,0xbf,0x7f,0xff,0x2f,0xff,0xff,0xef,0xfb,0xff,0xff,0xff,0xff,0xed,0xfe,0xdf,0xff,0xdf,0x7f,0xff,0x5f,0xff,0xfe,0xff,0xf7,0xff,0xff,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xff,0xff,0xdc,0xff,0xff,0xbc,0x7f,0xff,0xff,0xff,0xff,0xbf,0xdf,0xff,0xff,0xfe,0xff,0xff,0xdc,0x5f,0xff,0xc3,0x3f,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xfb,0xff,0xfe,0x7f,0x7f,0xff,0xab,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xf7,0xff,0xf8,0xbf,0x9f,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xcf,0xff,0xff,0xff,0xbf,0xff,0xfb,0xf7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xf9,0xf3,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xef,0xfe,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3,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,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xfe,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xfe,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x7b,0xff,0xff,0xff,0x8f,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xfc,0xfb,0xff,0xff,0xff,0x17,0xff,0xfe,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0x39,0xfd,0xfd,0xff,0xff,0xfc,0xff,0xff,0xd9,0x4f,0xfe,0x7c,0x7f,0xff,0xff,0xfc,0xfd,0xfb,0xff,0xff,0xff,0xff,0xfa,0xfd,0x13,0x67,0xd2,0x80,0x7f,0xff,0xff,0xef,0xff,0xfb,0xff,0x7f,0xff,0xe7,0xbd,0x1b,0x81,0xff,0x60,0x3e,0x7f,0xff,0xff,0xbf,0xff,0xf9,0xff,0x7f,0xff,0xfa,0x50,0x99,0x9b,0xff,0x48,0x7e,0x7f,0xff,0xff,0x7f,0xff,0xf1,0xff,0xff,0xff,0xf5,0x2,0xfd,0x9f,0xff,0x49,0x1f,0xff,0xff,0xfc,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xf1,0xf9,0xbe,0x7,0x49,0x1e,0xff,0xff,0xfb,0xff,0xe7,0xfb,0xff,0x7f,0xff,0xff,0xf3,0xf9,0xde,0x7,0x4b,0x3c,0xff,0xff,0xf7,0xff,0xff,0xff,0xfe,0xff,0xff,0xe0,0x80,0x79,0x9f,0x1f,0x51,0x35,0xff,0xff,0xef,0xff,0xfe,0xfd,0xff,0xff,0xff,0xf9,0x90,0x79,0xbe,0x3f,0x4f,0xc3,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0xff,0xff,0xf7,0xbe,0xfb,0xde,0x7f,0xff,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xbf,0x7c,0x39,0xff,0xff,0x9e,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xfe,0x7b,0xff,0xfb,0x1e,0x7f,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xfe,0x3f,0xf9,0xd7,0xff,0xd5,0x9e,0x7f,0xfe,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc4,0x7f,0xf9,0x9c,0x63,0x5,0x13,0xff,0xfe,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xe2,0xfe,0xff,0xfc,0xf,0xfd,0x8d,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,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,0xf9,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdf,0xff,0xff,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0x19,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xff,0xff,0xd3,0xff,0xff,0xff,0x38,0xff,0xff,0xec,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0x7f,0xc,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xe3,0xff,0xff,0x1f,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xff,0xe3,0xff,0xff,0x0,0x77,0xff,0xff,0xff,0xbf,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xc3,0x5f,0xff,0xc0,0x8c,0xff,0xff,0xff,0x9f,0xff,0xff,0xcf,0xbf,0xff,0xff,0xff,0xcc,0x5f,0xff,0xf7,0xcc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x71,0xff,0xff,0xff,0xf3,0x3f,0xff,0xb7,0xc7,0xff,0xff,0xff,0xf7,0xff,0xfe,0xfe,0xde,0xff,0xff,0xff,0xd0,0xff,0xff,0xc7,0x7,0xff,0xff,0xff,0xf9,0xff,0xfc,0x7e,0xbe,0xff,0xff,0xfe,0xb,0xff,0xff,0x8f,0x45,0xff,0xff,0xff,0xfc,0xff,0xf1,0xde,0x7f,0x7f,0x7f,0xf8,0x7,0xff,0xff,0xfd,0xe0,0xff,0xff,0xff,0xff,0xc0,0x7f,0xff,0xff,0xff,0x7f,0xfd,0x4f,0xff,0xfd,0xde,0xe0,0xff,0xff,0xff,0xff,0xed,0xff,0xff,0xff,0xbf,0x7f,0xff,0x2f,0xff,0xfd,0xef,0xf9,0xff,0xff,0xff,0xff,0xed,0xfe,0xdf,0xff,0xdf,0x7f,0xff,0x5f,0xff,0xfc,0xd3,0xe5,0xff,0xff,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xff,0xff,0xdc,0xff,0xfe,0x30,0x41,0xff,0xff,0xff,0xff,0xbf,0xdf,0xff,0xff,0xfe,0xff,0xff,0xdc,0x5f,0xff,0x41,0xf,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xfb,0xff,0xfe,0x7f,0x77,0xff,0xa3,0xfd,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xf7,0xff,0xf8,0xbf,0x93,0xff,0x47,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0x9f,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xdf,0xff,0xcf,0xff,0xff,0xff,0xbf,0xff,0xfb,0xf7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xf9,0xf3,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xef,0xfe,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3,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,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xfe,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xfe,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x7b,0xff,0xff,0xff,0x8f,0xff,0xfd,0xff,0xef,0xe7,0xff,0xff,0xff,0xff,0xc3,0xfc,0xfb,0xff,0xff,0xff,0x7,0xff,0xfa,0xff,0xef,0xe7,0xff,0xff,0xff,0xff,0x39,0xfd,0xfd,0xff,0xff,0xfc,0x67,0xfb,0x59,0x4b,0xce,0x0,0x7f,0xff,0xff,0xfc,0xfd,0xfb,0xff,0xff,0xff,0xfe,0x92,0x39,0x10,0x23,0x0,0x0,0x7f,0xff,0xff,0xef,0xff,0xfb,0xff,0x7f,0xff,0xe3,0xbd,0x19,0x81,0xff,0x0,0x3e,0x7f,0xff,0xff,0xbf,0xff,0xf9,0xff,0x7f,0xff,0xfa,0x50,0x19,0x9b,0xff,0x48,0x7e,0x7f,0xff,0xff,0x7f,0xff,0xf1,0xff,0xff,0xff,0xf5,0x0,0xf9,0x9f,0xff,0x49,0x1f,0xff,0xff,0xfc,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xf1,0xf9,0x9e,0x7,0x49,0x1e,0xff,0xff,0xfb,0xff,0xe7,0xfb,0xff,0x7f,0xff,0xff,0xf1,0xf9,0xde,0x7,0x4b,0x3c,0xff,0xff,0xf7,0xff,0xff,0xff,0xfe,0xff,0xff,0xe0,0x0,0x79,0x9f,0x1f,0x51,0x35,0xff,0xff,0xef,0xff,0xfe,0xfd,0xff,0xff,0xff,0xe0,0x0,0x79,0xbe,0x7f,0x27,0xc3,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0xff,0xff,0xe7,0x9e,0xf9,0x9c,0x7f,0xcf,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xe7,0xbe,0x7d,0x1c,0xf9,0xcd,0x9e,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0x7f,0x7a,0x59,0xf3,0xc9,0x1e,0x7f,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xfe,0x3f,0xf9,0xd3,0xf2,0x81,0x1e,0x7f,0xfe,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc0,0x79,0xb9,0x9c,0x62,0x1,0x0,0x7f,0xfe,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xc0,0xfe,0x9f,0xfc,0x7,0xfd,0x80,0x7f,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xc7,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,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,0xf9,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdf,0xff,0xff,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdb,0xff,0xff,0xff,0x19,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0x38,0xff,0xff,0xec,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0x7f,0xc,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xe3,0xff,0xff,0x1f,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xff,0xe1,0xff,0xff,0x0,0x37,0xff,0xff,0xff,0xbf,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xc0,0x1f,0xff,0x80,0x8c,0xff,0xff,0xff,0x9f,0xff,0xff,0xcf,0xbf,0xff,0xff,0xff,0xc0,0xf,0xff,0x93,0xc8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x71,0xff,0xff,0xff,0xc0,0x3f,0xff,0xb7,0x83,0xff,0xff,0xff,0xf7,0xff,0xfe,0xfe,0xde,0xff,0xff,0xff,0x80,0xff,0xff,0xc6,0x7,0xff,0xff,0xff,0xf9,0xff,0xfc,0x7e,0xbe,0x7f,0xff,0xfe,0x3,0xff,0xff,0x84,0x5,0xff,0xff,0xff,0xfc,0xff,0xf1,0xde,0x7f,0x7e,0x7f,0xf0,0x7,0xff,0xff,0x81,0xe0,0xff,0xff,0xff,0xff,0xc0,0x7f,0xff,0xff,0xbb,0x7f,0xf9,0x4f,0xff,0xfd,0xc0,0xe0,0xff,0xff,0xff,0xff,0xed,0xff,0xff,0xff,0xbb,0x7f,0xff,0x2f,0xff,0xfd,0x82,0xf9,0xff,0xff,0xff,0xff,0xed,0xfe,0xdf,0xff,0xdf,0x7f,0xff,0x1f,0xff,0xfc,0x83,0xe5,0xff,0xff,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xff,0xff,0x9c,0x7f,0xfe,0x30,0x1,0xff,0xff,0xff,0xff,0xbf,0xdf,0xff,0xff,0xfe,0xff,0xff,0x9c,0xf,0xff,0x41,0xf,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xfb,0xff,0xfe,0x3e,0x3,0xff,0x83,0xf8,0xef,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xf7,0xff,0xe8,0x3f,0x83,0xff,0x47,0xfc,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x7f,0xc7,0xff,0xdf,0xfe,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xdf,0xff,0xf,0xff,0xff,0xff,0xbf,0xff,0xfb,0xf7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0xff,0xbf,0xf9,0xf3,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xef,0xfe,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3,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,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xfe,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xfe,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x7b,0xff,0xff,0xff,0x8f,0xff,0xfc,0xff,0xcf,0xe7,0xff,0xff,0xff,0xff,0xc3,0xfc,0xfb,0xff,0xff,0xff,0x7,0xff,0xf8,0xff,0xcf,0xe7,0xff,0xff,0xff,0xff,0x39,0xfd,0xfd,0xff,0xff,0xfc,0x21,0xf8,0x18,0x3,0xce,0x0,0x7f,0xff,0xff,0xfc,0xfd,0xfb,0xff,0xff,0xff,0xe0,0x90,0x18,0x10,0x3,0x0,0x0,0x7f,0xff,0xff,0xef,0xff,0xfb,0xff,0x7f,0xff,0x83,0x9c,0x19,0x81,0xff,0x0,0x3e,0x7f,0xff,0xff,0xbf,0xff,0xf9,0xff,0x7f,0xff,0xc0,0x0,0x19,0x93,0xff,0x48,0x7e,0x7f,0xff,0xff,0x7f,0xff,0xf1,0xff,0xff,0xff,0xf0,0x0,0xf9,0x9f,0xff,0x49,0x1f,0xff,0xff,0xfc,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xf1,0xf9,0x98,0x7,0x49,0x1c,0xff,0xff,0xfb,0xff,0xe7,0xfb,0xff,0x7f,0xff,0xff,0xf1,0xf9,0x98,0x7,0x49,0x18,0x7f,0xff,0xf7,0xff,0xff,0xff,0xfe,0xff,0xff,0xe0,0x0,0x79,0x9f,0xf,0x1,0x0,0xff,0xff,0xef,0xff,0xfe,0xfd,0xff,0xff,0xff,0xe0,0x0,0x79,0x9e,0x3f,0x1,0x3,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0xff,0xff,0xe7,0x9e,0x79,0x9c,0x7f,0xcb,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xe7,0x9e,0x78,0x18,0xf1,0xc9,0x1e,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0x6,0x78,0x11,0xf3,0xc9,0x1e,0x7f,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xfe,0x0,0xf9,0x93,0xf2,0x1,0x1e,0x7f,0xfe,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc0,0x70,0x39,0x90,0x2,0x1,0x0,0x7f,0xfe,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xc0,0xfe,0x1f,0xf8,0x7,0xfd,0x80,0x7f,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xc7,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,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,0xf9,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xcf,0xff,0xff,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0x19,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0x10,0xff,0xff,0xec,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0x7f,0xc,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xe3,0xff,0xff,0x1f,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xff,0xe1,0xff,0xff,0x0,0x7,0xff,0xff,0xff,0xbf,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xc0,0x1f,0xff,0x80,0x80,0xff,0xff,0xff,0x9f,0xff,0xff,0xcf,0xbf,0xff,0xff,0xff,0xc0,0xf,0xff,0x81,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x71,0xff,0xff,0xff,0xc0,0x3f,0xff,0x83,0x83,0xff,0xff,0xff,0xf7,0xff,0xfe,0xfe,0xde,0xff,0xff,0xff,0x80,0xff,0xff,0xc6,0x7,0xff,0xff,0xff,0xf9,0xff,0xfc,0x7e,0xbe,0x7f,0xff,0xfe,0x3,0xff,0xff,0x84,0x5,0xff,0xff,0xff,0xfc,0xff,0xf1,0xde,0x7f,0x7e,0x7f,0xf0,0x7,0xff,0xff,0x81,0xe0,0xff,0xff,0xff,0xff,0xc0,0x7f,0xff,0xff,0xbb,0x7f,0xf8,0xf,0xff,0xfd,0xc0,0xe0,0xff,0xff,0xff,0xff,0xed,0xff,0xff,0xff,0xbb,0x7f,0xfc,0xf,0xff,0xfc,0x80,0xf1,0xff,0xff,0xff,0xff,0xed,0xfe,0xdf,0xff,0xdf,0x7f,0xff,0x1f,0xff,0xfc,0x0,0xe1,0xff,0xff,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xff,0xff,0x18,0x7f,0xfe,0x30,0x1,0xff,0xff,0xff,0xff,0xbf,0xdf,0xff,0xff,0xfe,0xff,0xfe,0x1c,0xf,0xfe,0x1,0x9,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xfb,0xff,0xfe,0x3e,0x3,0xff,0x0,0xf8,0xef,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xf7,0xff,0xe8,0x3f,0x83,0xff,0x7,0xfc,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x7f,0xc3,0xff,0x9f,0xfe,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xdf,0xff,0xf,0xff,0xff,0xff,0xbf,0xff,0xfb,0xf7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0xff,0xbf,0xf9,0xf3,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xef,0xfe,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3,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,0xfe,0xff,0xf7,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe6,0xff,0xf7,0xff,0xfc,0xff,0xcd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x96,0x9f,0xf2,0x7f,0x49,0xfb,0x4d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0x9a,0xff,0xff,0xfb,0x6d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x64,0x3e,0xd3,0xff,0xf8,0xf8,0x69,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0x7e,0x1a,0x7c,0x79,0xfb,0x4d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa2,0xff,0x38,0xfe,0xe1,0xf8,0x41,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x12,0x7f,0x19,0xfe,0xe3,0xfa,0x5d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x17,0x7f,0x40,0xfe,0x2b,0xff,0xdd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x67,0x7e,0xee,0xbe,0x5b,0xbf,0x9d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x7f,0xff,0x3c,0xbb,0xbf,0x39,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,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,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,0x9d,0xff,0x9e,0x7e,0x77,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xf9,0x9f,0x9f,0xff,0xbe,0xfe,0xf7,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xf9,0xdf,0x9f,0x1e,0xe,0xfc,0x31,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xf9,0x9f,0x7,0xfe,0x3a,0xfc,0xe7,0xfc,0x39,0xff,0xff,0xff,0xff,0xff,0xff,0xa7,0xf8,0x3f,0x8a,0x7e,0x3a,0x7c,0x6c,0x73,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0x7,0xf9,0xdf,0x93,0xff,0x8a,0x78,0x6f,0xfa,0xc9,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xf9,0xcf,0x3f,0xfe,0x2a,0x7e,0x49,0xfa,0xd9,0xff,0xff,0xff,0xff,0xff,0xfe,0x73,0xf9,0xcc,0xb8,0x7e,0xae,0x7c,0xf9,0xfa,0x19,0xff,0xff,0xff,0xff,0xff,0xfe,0xfb,0xf9,0xdf,0xbd,0xfe,0xae,0x7e,0xfb,0xfb,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x98,0x7f,0x3c,0x3f,0xbc,0x7e,0xe7,0xfb,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xa7,0xff,0xbe,0xfe,0xf3,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,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,0xff,0xdf,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xe,0xff,0xfb,0xff,0xdf,0xfd,0xef,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xfa,0x7f,0x6c,0x7c,0xdb,0xff,0xd9,0xf9,0xef,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xf,0xff,0x1a,0xff,0xf1,0xff,0xcf,0xfa,0xef,0xf8,0x7f,0xff,0xff,0xff,0xff,0xff,0xb0,0xff,0x40,0xfb,0xc,0xf8,0x67,0xf6,0xe1,0xfe,0x9f,0xff,0xff,0xff,0xff,0xff,0xbc,0x7e,0x4c,0xfd,0x9c,0xfa,0x6b,0xe1,0xef,0xf2,0xcf,0xff,0xff,0xff,0xff,0xff,0xc,0x1e,0x18,0xff,0x89,0xfc,0xe3,0xfb,0xc3,0xfa,0x9f,0xff,0xff,0xff,0xff,0xff,0x40,0x3d,0xfd,0xfc,0x8,0x3c,0x67,0xf1,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xfe,0x18,0x7f,0xf7,0xfc,0x59,0xfd,0x7,0xfe,0x3,0xfc,0x3f,0xff,0xff,0xff,0xff,0xfd,0x7c,0x7f,0xf3,0xf9,0x99,0xfb,0x92,0xf1,0xbb,0xfa,0xcf,0xff,0xff,0xff,0xff,0xff,0xfc,0xf,0xf7,0xfb,0xb9,0xf7,0xf8,0xf7,0xb3,0xe6,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x1f,0xbf,0xf1,0xff,0xfc,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,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,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,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,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,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xbc,0xe7,0xff,0xfe,0x7f,0xff,0xff,0x9f,0xfe,0x7e,0x3f,0xe3,0xff,0xff,0xff,0xff,0x8e,0xef,0xff,0xfe,0x63,0xff,0xe0,0x1f,0xfe,0x7e,0x7f,0xe3,0xff,0xff,0xff,0xff,0xef,0xc1,0xff,0xfe,0x7f,0xff,0xee,0x7f,0xfe,0x7e,0xff,0xf3,0xff,0xff,0xff,0xff,0xfe,0x1f,0xff,0x83,0x63,0xff,0xe6,0x7f,0xfe,0xfc,0xff,0xf3,0xff,0xff,0xff,0xfe,0x70,0xf0,0xfe,0x67,0x1f,0xff,0xe6,0x7f,0xfe,0xdd,0x8f,0xf3,0xff,0xff,0xff,0xff,0x39,0x89,0xff,0xe0,0x37,0xff,0xe6,0x1,0xfc,0xc9,0xc7,0xf3,0xff,0xff,0xff,0xff,0xf8,0xfb,0xff,0x27,0x23,0xff,0x6,0x7f,0xfc,0x0,0x27,0xf3,0xff,0xff,0xff,0xff,0xd8,0x67,0xff,0x8f,0xa7,0xff,0xe6,0x7f,0xc1,0x93,0xff,0xf3,0xff,0xff,0xff,0xff,0x92,0x66,0x3f,0xc7,0x8f,0xff,0xee,0x7f,0xfd,0x9f,0xff,0xf3,0xff,0xff,0xff,0xff,0xb6,0x3,0xff,0x83,0x1f,0xff,0xce,0x7f,0xfc,0x3e,0xf,0xf3,0xff,0xff,0xff,0xff,0x2c,0xf3,0xff,0x32,0xf,0xff,0xce,0x7f,0xfe,0x73,0xc7,0xff,0xff,0xff,0xff,0xfe,0x1c,0xf3,0xfe,0x7c,0xee,0xff,0x9e,0x7f,0xfe,0x33,0xcf,0xf3,0xff,0xff,0xff,0xfe,0x79,0xf3,0xfc,0xf3,0xe2,0xff,0x3e,0x7f,0xfc,0x9b,0x8f,0xe3,0xff,0xff,0xff,0xff,0xfb,0xe3,0xff,0xff,0xf0,0xfe,0xfe,0x7f,0xf3,0xb8,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xfe,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,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,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}
};


// 主程序开始
void setup() {
        mPython.begin();
        dfrobotRandomSeed();
        DF_ChuShiHuaChangDu();
        DF_KaiJiDongHua();
}
void loop() {
        delay(100);
        display.fillScreen(0);
        display.point(mind_n_ShiWux, mind_n_ShiWuy);
        DF_AnJian();
        if ((mind_n_FangXiange==0)) {
                mind_n_x += 1;
                DF_TanChiSheHuoDong();
        }
        if ((mind_n_FangXiange==1)) {
                mind_n_y -= 1;
                DF_TanChiSheHuoDong();
        }
        if ((mind_n_FangXiange==2)) {
                mind_n_x -= 1;
                DF_TanChiSheHuoDong();
        }
        if ((mind_n_FangXiange==3)) {
                mind_n_y += 1;
                DF_TanChiSheHuoDong();
        }
}


// 自定义函数
void DF_ChiDaoShiWu() {
        if (((mind_n_x==mind_n_ShiWux) && (mind_n_y==mind_n_ShiWuy))) {
                mind_n_ShenChangc += 1;
                mind_l_X.insert(mind_n_ShenChangc-1, mind_l_X[(mind_n_ShenChangc - 1)-1]);
                mind_l_Y.insert(mind_n_ShenChangc-1, mind_l_Y[(mind_n_ShenChangc - 1)-1]);
                display.point((String("123").toInt()), (String("123").toInt()));
                mind_n_ShiWux = (random(5, 60+1));
                mind_n_ShiWuy = (random(5, 120+1));
                mind_n_FenShuf += 1;
        }
}
void DF_PengBi() {
        if ((((mind_n_SheToux==0) || (mind_n_SheTouy==0)) || ((mind_n_SheToux==128) || (mind_n_SheTouy==64)))) {
                display.drawImage(0, 0, 128, 64, imageMatrix);
                delay(2000);
                display.fillScreen(0);
                display.setCursor(10, 22);
                display.print("获得分数:");
                display.setCursor(82, 22);
                display.print(mind_n_FenShuf);
                DF_ChuShiHuaChangDu();
                delay(2000);
        }
}
void DF_KaiJiDongHua() {
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(200);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(200);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(200);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(200);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(200);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(200);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(200);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(200);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(200);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(200);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(200);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(200);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(200);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(1000);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(3000);
        display.drawImage(0, 0, 128, 64, imageMatrix);
        delay(2000);
}
void DF_TanChiSheHuoDong() {
        mind_n_SheToux = mind_n_x;
        mind_n_SheTouy = mind_n_y;
        mind_n_LieBiaod = mind_n_ShenChangc;
        display.point(mind_n_SheToux, mind_n_SheTouy);
        while (!(mind_n_LieBiaod==1)) {
                mind_l_X.replace(mind_n_LieBiaod-1, mind_l_X[(mind_n_LieBiaod - 1)-1]);
                mind_l_Y.replace(mind_n_LieBiaod-1, mind_l_Y[(mind_n_LieBiaod - 1)-1]);
                display.point((String("123").toInt()), (String("123").toInt()));
                mind_n_LieBiaod -= 1;
                yield();
        }
        mind_l_X.replace(mind_n_LieBiaod-1, (String(mind_n_SheToux)));
        mind_l_Y.replace(mind_n_LieBiaod-1, (String(mind_n_SheTouy)));
        DF_ChiDaoShiWu();
        DF_PengBi();
}
void DF_ChuShiHuaChangDu() {
        mind_n_ShiWux = (random(1, 60+1));
        mind_n_ShiWuy = (random(1, 120+1));
        mind_n_x = 64;
        mind_n_y = 32;
        mind_n_ShenChangc = 6;
        mind_n_FangXiange = 0;
        mind_l_X.insert(1-1, "64");
        mind_l_X.insert(2-1, "63");
        mind_l_X.insert(3-1, "62");
        mind_l_X.insert(4-1, "61");
        mind_l_X.insert(5-1, "60");
        mind_l_X.insert(6-1, "59");
        mind_l_Y.insert(1-1, "32");
        mind_l_Y.insert(2-1, "32");
        mind_l_Y.insert(3-1, "32");
        mind_l_Y.insert(4-1, "32");
        mind_l_Y.insert(5-1, "32");
        mind_l_Y.insert(6-1, "32");
        display.point(64, 32);
        display.point(63, 32);
        display.point(62, 32);
        display.point(61, 32);
        display.point(60, 32);
        display.point(59, 32);
        display.point(59, 32);
}
void DF_AnJian() {
        if ((buttonA.isPressed())) {
                mind_n_FangXiange += 1;
                if ((mind_n_FangXiange==4)) {
                        mind_n_FangXiange = 0;
                }
        }
        if ((buttonB.isPressed())) {
                mind_n_FangXiange -= 1;
                if ((mind_n_FangXiange==-1)) {
                        mind_n_FangXiange = 3;
                }
        }
}

驴友花雕 发表于 2020-6-26 11:14:05

2、简单连连看(shworld)

玩法说明
按A键左移动
按B键右移动
按金手指T或H来选择


#MicroPython动手做(35)——体验小游戏
#简单连连看

from mpython import *
import random

#--------------------------------------------------------
#图片转换参考https://mpython.readthedocs.io/zh/master/tutorials/basics/oled.html#id3
#图片定义
#苹果
apple = bytearray([\
0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X01,0X80,0X00,0X00,0X01,0X80,0X18,0X70,0X01,
0X80,0X00,0X0C,0X01,0X80,0X00,0X03,0X01,0X84,0X01,0XC0,0X81,0X88,0X3F,0XF0,0X61,
0X98,0X3F,0XF8,0X31,0X90,0X3F,0XFC,0X31,0XB0,0X3F,0XFC,0X19,0XB0,0X3F,0XFE,0X19,
0XB0,0X0F,0XF6,0X19,0XB8,0X00,0X80,0X19,0XBC,0X00,0X00,0X19,0XBE,0X00,0X00,0X39,
0XBF,0X80,0X00,0X79,0XBF,0XE0,0X07,0XF9,0X9F,0XFF,0XFF,0XF9,0X9F,0XFF,0XFF,0XF1,
0X8F,0XFF,0XFF,0XF1,0X8F,0XFF,0XFF,0XE1,0X87,0XFF,0XFF,0XE1,0X83,0XFF,0XFF,0XC1,
0X81,0XFF,0XFF,0X81,0X81,0XFF,0XFF,0X01,0X80,0XFF,0XFE,0X01,0X80,0X7F,0XFC,0X01,
0X80,0X3F,0XF0,0X01,0X80,0X00,0X00,0X01,0X80,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
])

#樱桃
cherry = bytearray([\
0XFF,0XFF,0XFF,0XFF,0X80,0XC0,0X00,0X01,0X81,0XC0,0X00,0X01,0X80,0XC0,0X00,0X01,
0X80,0XC0,0X00,0X01,0X80,0XA0,0X00,0X01,0X80,0X10,0X00,0X01,0X80,0X90,0X00,0X01,
0X80,0X88,0X00,0X01,0X80,0X8C,0X00,0X01,0X80,0X84,0X00,0X01,0X80,0X83,0X00,0X01,
0X80,0X81,0X80,0X01,0X80,0X00,0XCF,0X21,0X80,0X40,0X7F,0X11,0X80,0X79,0XFF,0X19,
0X87,0XFC,0XFF,0XF9,0X8F,0XFC,0X7F,0XF9,0X9F,0XF8,0X7F,0XFD,0XBF,0XF8,0X7F,0XFD,
0XBF,0XF8,0X7F,0XFD,0XBF,0XF8,0X7F,0XFD,0XBF,0XFF,0XFF,0XFD,0XBF,0XFF,0XFF,0XF9,
0XBF,0XFF,0XFF,0XF9,0XBF,0XFF,0XFF,0XF1,0XBF,0XFF,0XFF,0XF1,0X9F,0XFF,0XFF,0XE1,
0X8F,0XFF,0X9F,0X81,0X87,0XFF,0X00,0X01,0X81,0XFC,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
])

#桑葚
mulberry = bytearray([\
0XFF,0XFF,0XFF,0XFF,0X80,0X21,0X00,0X01,0X80,0X10,0X00,0X01,0X81,0X08,0X80,0X01,
0X82,0X38,0X80,0X01,0X82,0X3F,0X80,0X01,0X82,0X3F,0XE0,0X01,0X86,0X3F,0XF0,0X01,
0X86,0X3F,0XF8,0X01,0X83,0XFF,0XFC,0X01,0X83,0XFF,0XFE,0X01,0X87,0XFF,0XFF,0X01,
0X8F,0XFF,0XFF,0X01,0X8F,0XFF,0XFF,0X01,0X8F,0XFF,0XFF,0X81,0X8F,0XFF,0XFF,0X81,
0X8F,0XFF,0XFF,0X81,0X8F,0XFF,0XFF,0X81,0X8F,0XFF,0XFF,0X81,0X87,0XFF,0XFF,0X81,
0X87,0XFF,0XFF,0X81,0X83,0XFF,0XFF,0XC1,0X81,0XFF,0XFF,0XC1,0X80,0XFF,0XFF,0XC1,
0X80,0XFF,0XFF,0XC1,0X80,0X7F,0XFF,0XC1,0X80,0X3F,0XFF,0X81,0X80,0X1F,0XFF,0X81,
0X80,0X0F,0XFF,0X81,0X80,0X03,0XFF,0X01,0X80,0X01,0XFC,0X01,0XFF,0XFF,0XFF,0XFF,
])

#草莓
strawberry = bytearray([\
0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X01,0X80,0X00,0X00,0X01,0X80,0X00,0X00,0X01,
0X80,0X00,0X00,0X01,0X80,0X00,0XC0,0X01,0X80,0X03,0XE8,0X01,0X80,0X0D,0XE4,0X01,
0X80,0X1F,0XFE,0X01,0X80,0X3F,0XFF,0X01,0X80,0X7F,0XFF,0X01,0X80,0XFF,0XDF,0X81,
0X81,0XFF,0XFF,0XF9,0X83,0XFF,0XFF,0XC1,0X83,0XFF,0XFF,0XC1,0X87,0XFF,0XFF,0XC1,
0X8F,0XFF,0XFF,0XE1,0X9F,0X7F,0XFF,0XE1,0XBF,0XFF,0XFF,0XE1,0XBF,0XFF,0XFF,0XE1,
0XBF,0XFE,0XFF,0XE1,0XBF,0XDF,0XFF,0XE1,0XBF,0XFF,0XFF,0XC1,0X9F,0XFF,0XFE,0XC1,
0X9F,0XFF,0XBF,0X81,0X8F,0XFF,0XFF,0X01,0X81,0XFF,0XFC,0X01,0X80,0X07,0XF0,0X01,
0X80,0X00,0X00,0X01,0X80,0X00,0X00,0X01,0X80,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
])

#打勾
tick = bytearray([\
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X03,0XC0,0X00,0X00,0X03,
0XC0,0X00,0X00,0X03,0XC0,0X00,0X00,0X63,0XC0,0X00,0X00,0XE3,0XC0,0X00,0X01,0XE3,
0XC0,0X00,0X03,0XE3,0XC0,0X00,0X07,0XE3,0XC0,0X00,0X0F,0XE3,0XC0,0X00,0X1F,0XE3,
0XC0,0X00,0X1F,0XF3,0XC0,0X00,0X3F,0XF3,0XC0,0X00,0X7F,0XC3,0XC0,0X00,0X7F,0X83,
0XC0,0XC0,0XFF,0X03,0XC1,0XE0,0XFE,0X03,0XC7,0XE1,0XFC,0X03,0XCF,0XF1,0XF8,0X03,
0XCF,0XF3,0XF0,0X03,0XC3,0XFB,0XE0,0X03,0XC1,0XFF,0XC0,0X03,0XC0,0X7F,0X80,0X03,
0XC0,0X3F,0X80,0X03,0XC0,0X1F,0X00,0X03,0XC0,0X0E,0X00,0X03,0XC0,0X06,0X00,0X03,
0XC0,0X04,0X00,0X03,0XC0,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
])


#--------------------------------------------------------
#函数定义
#生成8个随机水果下标
#默认数组,循环2次,就有个8了,如何避免每次生成重复的呢,下面请看
def getFruitRand():
    fruitsIndex=
    fruitsIndex_random=[]
    for i in range(2):                                 #对循环2次加入到fruitsIndex_random中
      fruitsIndex_=fruitsIndex.copy()                #这里不直接用fruitsIndex,因为下面有del删除,我们拷贝一份副本
      for j in range(4):                           #循环4次
            rand=random.randint(0,len(fruitsIndex_)-1) #随机0-3,因j从0开始最大为3,而len(fruitsIndex)返回的是4,所以-1
            randIndex=fruitsIndex_               #取随机下标,范围在0-3中, fruitsIndex=               
            fruitsIndex_random.append(randIndex)       #添加到fruitsIndex_random中
            del(fruitsIndex_)                  #这里核心,添加完成后删除掉fruitsIndex中的内容                     
                                                       #删除掉后,随机就肯定不会出现重复的了
                                                       #比如每次都随机删除最后一个
                                                       #循环第一次fruitsIndex_长度为
                                                       #循环第二次fruitsIndex_长度为
                                                       #循环第三次fruitsIndex_长度为
                                                       #循环第四次fruitsIndex_长度为
                                                       #这样随机肯定不会重复
    #返回得到的8位随机水果下标fruitsIndex_random   
    return fruitsIndex_random
            


#显示8个水果图片
#isShow主要控制是否最后oled.show(),因为我可能会再show()之前插入一些文字
#fruitsIndex传输的8位随机水果下标,如
def showFruit(fruitsIndex,isShow=True):
    i=0
    for index in fruitsIndex:                           #遍历fruitsIndex下标,i计次,从0开始
      if i<4:                                       #控制一行显示4个
            if index==-1:                               #下标为何出现-1,在其他函数中连连看完成会置下标-1
                oled.Bitmap(32*i, 0, tick, 32, 32, 1)   #显示打勾图片(x每次递增32,因为每张图32*32,屏宽128)
            else:                                       #否则显示水果图
                oled.Bitmap(32*i, 0, fruits, 32, 32, 1)
      if i>=4:                                        #如果显示第5个图了,换行显示,y坐标变成32
            if index==-1:                               #以此类题,显示打勾图片
                oled.Bitmap(32*(i-4), 32, tick, 32, 32, 1)
            else:
                oled.Bitmap(32*(i-4), 32, fruits, 32, 32, 1)
      i=i+1                                           #i递增
   
    #是否显示输出
    if isShow:
      oled.show()

#按键A触发事件,向左移动判断
def on_button_a_down(_):
    global cursor_X,cursor_Y,chose1XY,isFinish#引用全局变量
    time.sleep_ms(10)                           #防抖,可以不写
    if button_a.value() == 1: return            #按钮按下状态
    if isFinish==True:                        #如果全部连完了,重新开始游戏
      start()
      return
    oled.fill(0)                              #清空屏幕显示      
    showFruit(fruitsIndex,False)                #显示水果,传入随机的8个水果下标
    cursor_X=cursor_X-32                        #全局光标坐标-32(因图片宽高为32)
    if cursor_X<0 and cursor_Y==8:            #如果光标在第一行且X到最左端了,那么换到第二行最右侧
      cursor_X=100                            #换到第二行最右侧
      cursor_Y=40
    if cursor_X<4 and cursor_Y==40:             #如果光标在第二行且X在最左端了,那么换到第一行最右侧
      cursor_X=100
      cursor_Y=8
      
    if chose1XY:                                       #如果第1个位置已经选中状态
      oled.DispChar('选中', chose1XY, chose1XY)#显示那个"光标"的文字位置
    oled.DispChar('光标', cursor_X, cursor_Y)            #否则显示"光标"文字
    oled.show()                                          #显示生效

   
#按键B触发事件,向右移动判断
def on_button_b_down(_):
    global cursor_X,cursor_Y,chose1XY,isFinish   #按键B与按键A没有区别,就是到极端时换行不同
    time.sleep_ms(10)
    if button_b.value() == 1: return
    if isFinish==True:
      start()
      return
    oled.fill(0)   
    showFruit(fruitsIndex,False)
    cursor_X=cursor_X+32
    if cursor_X>128 and cursor_Y==40:
      cursor_X=4
      cursor_Y=8
    if cursor_X>128 and cursor_Y==8:
      cursor_X=4
      cursor_Y=40
   
    if chose1XY :
      oled.DispChar('选中', chose1XY, chose1XY)
    oled.DispChar('光标', cursor_X, cursor_Y)
    oled.show()


#验证是否完成8个水果的连连看
def checkIsFinish():
    global isFinish                           #引用全局变量
    i=0                                       #初始化i变量
    for index in fruitsIndex:                   #遍历fruitsIndex下标情况
      if index==-1:                           #如果为-1,i递增(在其他函数中连连看完成会置下标-1)
            i=i+1
    if i>=8:                                    #如果i等于8说明8个连连看都完成了
      isFinish=True                           #置全局变量
      oled.fill(0)                            #清空屏幕显示
      oled.DispChar('恭喜您,通关了!', 28, 15) #填充文字
      oled.DispChar('按A或B重新开始', 22, 30) #填充文字
      oled.show()                           #显示生效
      
#通过金手指T和H来选择水果      
def choseFruit(cursor_X,cursor_Y):
    global fruitsIndex,chose1Index,chose2Index,chose1XY,chose2XY
    i=0
    for x,y in fruitXY:                         #遍历8张图的预定义坐标
      if cursor_X==x and cursor_Y==y:         #如果当前光标位置=预定义坐标位置,即可得到水果下标
            if fruitsIndex==-1:            #如果光标位置下标为-1,说明已是打勾状态,不重复选中
                return                        #返回
            if chose1XY:                        #如果第1个位置已经选中状态            
                chose2XY=                  #把光标位置赋给第2个选择位置
                chose2Index=fruitsIndex      #同时得到水果下标
            else:
                chose1XY=                  #否则赋值第1个选择位置
                chose1Index=fruitsIndex      #同时得到水果下标
      i=i+1                                 #i递增         
    showFruit(fruitsIndex,False)                #显示水果,不立即显示生效
   
    if chose2XY:                                                             #如果第2个位置选中了,此时可进行匹配
      if chose1Index==chose2Index and chose1XY!=chose2XY:                  #如果位置1和位置2的下标相同且坐标不相同(否则连自身就匹配成功了)
            oled.line(chose1XY, chose1XY, chose2XY, chose2XY, 1) #画线,位置1到位置2
            oled.DispChar('成功', cursor_X, cursor_Y)                        #填充文字
            for i in range(len(fruitsIndex)):                              #遍历全局fruitsIndex,把该水果的下标置-1
                if fruitsIndex==chose2Index:
                  fruitsIndex=-1
            chose1XY=[]                                                      #清空位置1坐标
            chose2XY=[]                                                      #清空位置2坐标
            oled.show()                                                      #显示生效
            checkIsFinish()                                                #检测是否全部匹配完成
    else:
      oled.DispChar('选中', cursor_X, cursor_Y)                            #否则继续显示"选中"文字
      oled.show()                                                          #显示生效
   
#开始游戏
def start():
    #引用全局变量并初始化默认值,因为重新开始游戏时必须初始化
    global fruitsIndex,cursor_X,cursor_Y,chose1XY,chose1Index,chose2XY,chose2Index,fruitsIndex,isFinish
   
    #初始化变量
    chose1XY=[]
    chose1Index=''
    chose2XY=[]
    chose2Index=''
    fruitsIndex=[]
    cursor_X=4
    cursor_Y=8
    isFinish=False
   
    oled.fill(0)                   #清空屏幕显示
    fruitsIndex=getFruitRand()   #获取随机的8个水果下标
    showFruit(fruitsIndex,False)   #第一次开始游戏先显示水果,传入8个随机水果下标
    oled.DispChar('光标', cursor_X, cursor_Y)   #第一次开始游戏,光标出现在默认的x,y4,8位置
    oled.show()                  #显示生效




#--------------------------------------------------------
#变量定义
fruits= #4个图片的bitmap数组
fruitsIndex=[]                            #水果的下标数组,用来存放随机的8个水果
fruitXY=[,,,,,,,]#8张图的预定义坐标,从左到右,从上到下

chose1XY=[]                               #位置1选择的水果坐标
chose1Index=''                            #位置1选择的水果下标

chose2XY=[]                               #位置2选择的水果坐标
chose2Index=''                            #位置2选择的水果下标

cursor_X=4                              #全局光标坐标,默认为第一个图的位置4,8(居中显示)
cursor_Y=8                              

isFinish=False                            #是否已完成

start()                                 #开始游戏



#--------------------------------------------------------
#按键监听
#按键A/B触发监视
button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)
button_b.irq(trigger=Pin.IRQ_FALLING, handler=on_button_b_down)

#通过金手指T和H来选择水果
while True:
    if(touchPad_T.read() < 100):
      choseFruit(cursor_X,cursor_Y)
    elif(touchPad_H.read() < 100):
      choseFruit(cursor_X,cursor_Y)

驴友花雕 发表于 2020-6-26 20:20:37

11、俄罗斯方块

#MicroPython动手做(35)——小游戏
#俄罗斯方块

from mpython import *
import math
import random, time

class Brick():
    def __init__(self, p_position):
      self.position = p_position

    def draw(self):

      x = self.position * brick_size
      y = self.position * brick_size
      oled.fill_rect(brick_size * (field_height - 1) - x, y, brick_size, brick_size, 1)


class Block():
    def __init__(self, p_bricks_layout, p_direction):
      self.bricks_layout = p_bricks_layout
      self.direction = p_direction
      self.init_position = (field_width // 2 - 2, 0)
      self.cur_layout = self.bricks_layout
      self.position = self.init_position
      self.stopped = False
      self.move_interval = 500
      self.last_move = 0
      self.bricks = []
      for (x, y) in self.cur_layout:
            self.bricks.append(Brick((self.position + x, self.position + y)))

    def draw(self):
      for brick in self.bricks:
            brick.draw()

    def isLegal(self, layout, position):
      (x0, y0) = position
      for (x, y) in layout:
            if x + x0 < 0 or y + y0 < 0 or x + x0 >= field_width or y + y0 >= field_height:
                return False
            if field_map != 0:
                return False
      return True

    def left(self):
      new_position = (self.position - 1, self.position)
      if self.isLegal(self.cur_layout, new_position):
            self.position = new_position
            self.refresh_bircks()

    def right(self):
      new_position = (self.position + 1, self.position)
      if self.isLegal(self.cur_layout, new_position):
            self.position = new_position
            self.refresh_bircks()

    def down(self):
      (x, y) = (self.position, self.position + 1)
      while self.isLegal(self.cur_layout, (x, y)):
            self.position = (x, y)
            self.refresh_bircks()
            y += 1

    def refresh_bircks(self):
      for (brick, (x, y)) in zip(self.bricks, self.cur_layout):
            brick.position = (self.position + x, self.position + y)

    def stop(self):
      global field_bricks
      global score
      self.stopped = True
      ys = []
      for brick in self.bricks:
            field_bricks.append(brick)
            (x, y) = brick.position
            if y not in ys:
                ys.append(y)
            field_map = 1

      eliminate_count = 0
      ys.sort()

      for y in ys:
            if 0 in field_map:
                continue
            eliminate_count += 1
            for fy in range(y, 0, -1):
                field_map = field_map[:]
            field_map =

            tmp_field_bricks = []
            for fb in field_bricks:
                (fx, fy) = fb.position
                if fy < y:
                  fb.position = (fx, fy + 1)
                  tmp_field_bricks.append(fb)
                elif fy > y:
                  tmp_field_bricks.append(fb)
            field_bricks = tmp_field_bricks
      if eliminate_count == 1:
            score += 1
      elif eliminate_count == 2:
            score += 2
      elif eliminate_count == 3:
            score += 4
      elif eliminate_count == 4:
            score += 6

    def update(self, time):
      self.draw()
      if time - self.last_move >= self.move_interval:
            new_position = (self.position, self.position + 1)
            if self.isLegal(self.cur_layout, new_position):
                self.position = new_position
                self.refresh_bircks()
                self.last_move = time
            else:
                self.stop()

    def rotate(self):
      new_direction = (self.direction + 1) % len(self.bricks_layout)
      new_layout = self.bricks_layout
      if not self.isLegal(new_layout, self.position):
            return
      self.direction = new_direction
      self.cur_layout = new_layout
      for (brick, (x, y)) in zip(self.bricks, self.cur_layout):
            brick.position = (self.position + x, self.position + y)
      self.refresh_bircks()
      self.draw()


# 0: oooo
# 1: oo
#    oo
# 2: o
#   ooo
# 3: o
#    oo
#   o
# 4:o
#    oo
#    o
# 5: ooo
#    o
# 6: ooo
#      o
bricks_layout_0 = (((0, 0), (0, 1), (0, 2), (0, 3)), ((0, 1), (1, 1), (2, 1), (3, 1)))
bricks_layout_1 = (((1, 0), (2, 0), (1, 1), (2, 1)), )
bricks_layout_2 = (
    ((1, 0), (0, 1), (1, 1), (2, 1)),
    ((0, 1), (1, 0), (1, 1), (1, 2)),
    ((1, 2), (0, 1), (1, 1), (2, 1)),
    ((2, 1), (1, 0), (1, 1), (1, 2)),
)
bricks_layout_3 = (
    ((0, 1), (1, 1), (1, 0), (2, 0)),
    ((0, 0), (0, 1), (1, 1), (1, 2)),
)
bricks_layout_4 = (
    ((0, 0), (1, 0), (1, 1), (2, 1)),
    ((1, 0), (1, 1), (0, 1), (0, 2)),
)
bricks_layout_5 = (
    ((0, 0), (1, 0), (1, 1), (1, 2)),
    ((0, 2), (0, 1), (1, 1), (2, 1)),
    ((1, 0), (1, 1), (1, 2), (2, 2)),
    ((2, 0), (2, 1), (1, 1), (0, 1)),
)
bricks_layout_6 = (
    ((2, 0), (1, 0), (1, 1), (1, 2)),
    ((0, 0), (0, 1), (1, 1), (2, 1)),
    ((0, 2), (1, 2), (1, 1), (1, 0)),
    ((2, 2), (2, 1), (1, 1), (0, 1)),
)

field_width, field_height = 16, 30
brick_size = 4
field_map = [ for i in range(field_height)]
field_bricks = []
score = 0
running = True
threshhold = 400


def drawField():
    for brick in field_bricks:
      brick.draw()


def getBlock():
    block_type = random.randint(0, 6)
    if block_type == 0:
      return Block(bricks_layout_0, random.randint(0, len(bricks_layout_0) - 1))
    elif block_type == 1:
      return Block(bricks_layout_1, random.randint(0, len(bricks_layout_1) - 1))
    elif block_type == 2:
      return Block(bricks_layout_2, random.randint(0, len(bricks_layout_2) - 1))
    elif block_type == 3:
      return Block(bricks_layout_3, random.randint(0, len(bricks_layout_3) - 1))
    elif block_type == 4:
      return Block(bricks_layout_4, random.randint(0, len(bricks_layout_4) - 1))
    elif block_type == 5:
      return Block(bricks_layout_5, random.randint(0, len(bricks_layout_5) - 1))
    elif block_type == 6:
      return Block(bricks_layout_6, random.randint(0, len(bricks_layout_6) - 1))


def run():
    global running
    btn_n_stat, btn_o_stat, btn_t_stat, btn_p_stat = * 4

    while running:

      cur_block = getBlock()

      if not cur_block.isLegal(cur_block.cur_layout, cur_block.position):
            cur_block.draw()
            running = False
            continue

      while not cur_block.stopped:

            oled.fill(0)
            ticks = time.ticks_ms()
            cur_block.update(ticks)
            drawField()
            oled.show()

            if touchPad_T.read() < threshhold and btn_t_stat == 0:
                cur_block.rotate()
                btn_t_stat = 1
            elif touchPad_T.read() >= threshhold:
                btn_t_stat = 0

            if touchPad_P.read() < threshhold and btn_p_stat == 0:
                cur_block.down()
                btn_p_stat = 1
            elif touchPad_P.read() >= threshhold:
                btn_p_stat = 0

            if touchPad_N.read() < threshhold and btn_n_stat == 0:
                cur_block.left()
                btn_n_stat = 1
            elif touchPad_N.read() >= threshhold:
                btn_n_stat = 0

            if touchPad_O.read() < threshhold and btn_o_stat == 0:
                cur_block.right()
                btn_o_stat = 1
            elif touchPad_O.read() >= threshhold:
                btn_o_stat = 0
    oled.fill(0)
    oled.text('Game over!', 25, 20)
    oled.text('Score:%d' % score, 25, 32)
    oled.show()


if __name__ == '__main__':
    run()

驴友花雕 发表于 2020-6-26 09:42:10

1、弹球游戏


#MicroPython动手做(35)——体验小游戏
#弹球游戏

from mpython import *
import music
import time

def func():
    global a, b, FMQ, loc, staart_flag, Start, X, Y
    music.pitch(131, 500)
    loc = 44
    a = 2
    b = 2
    staart_flag = False
    Start = True
    Y = 48
    X = 64
    FMQ = False

def a1():
    global a, b, FMQ, loc, staart_flag, Start, X, Y
    if FMQ:
      music.pitch(131, 500)
      FMQ = False

def a3():
    global a, b, FMQ, loc, staart_flag, Start, X, Y
    if Start:
      if button_a.value() == 0:
            staart_flag = True
            loc = loc - 2
            if loc < 0:
                loc = 0
      if button_b.value() == 0:
            staart_flag = True
            loc = loc + 2
            if loc > 88:
                loc = 88

def a2():
    global a, b, FMQ, loc, staart_flag, Start, X, Y
    oled.fill(0)
    oled.fill_rect(loc, 55, 40, 5, 1)
    oled.fill_circle(X, Y, 5, 1)
    oled.show()
    if button_a.value() == 0 and button_b.value() == 0:
      func()
      while button_a.value() == 0 and button_b.value() == 0:
            pass
      time.sleep_ms(100)

def a4():
    global a, b, FMQ, loc, staart_flag, Start, X, Y
    if staart_flag:
      X = X + a
      Y = Y - b
      if X >= 122:
            a = a * -1
      if X <= 5:
            a = a * -1
      if Y <= 5:
            b = b * -1
      if Y >= 48:
            if not (X > loc + 50 or X < loc - 10):
                b = b * -1
            if X > loc + 50 or X < loc - 10:
                staart_flag = False
                Start = False
                FMQ = True


func()
while True:
    a1()
    a2()
    a3()
    a4()

驴友花雕 发表于 2020-6-26 09:46:13

mPython X 实验图形编程



驴友花雕 发表于 2020-6-26 10:29:01


驴友花雕 发表于 2020-6-26 10:53:15

弹球游戏(实验视频)

https://v.youku.com/v_show/id_XNDcyNzU1MjkwNA==.html?spm=a2h0c.8166622.PhoneSokuUgc_1.dtitle

https://v.youku.com/v_show/id_XNDcyNzU1MjkwNA==.html?spm=a2h0c.8166622.PhoneSokuUgc_1.dtitle

驴友花雕 发表于 2020-6-26 11:28:23

简单连连看


驴友花雕 发表于 2020-6-26 12:19:01

Mind+ 实验图形编程


驴友花雕 发表于 2020-6-26 12:27:48

Mind+ 实验图形编程2


驴友花雕 发表于 2020-6-26 12:32:08


驴友花雕 发表于 2020-6-26 12:40:48

4、平衡自行车(shworld)


#MicroPython动手做(35)——小游戏
#平衡自行车

from mpython import *

#自行车BMP图像转字节数据参考
#https://mpython.readthedocs.io/zh/master/tutorials/basics/oled.html#id4
bmp = bytearray([\
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0X00,0X0F,0XF8,0X00,0X00,
0X00,0X00,0X18,0X00,0X0C,0X0C,0X00,0X00,0X00,0X00,0X08,0X00,0X04,0X04,0X00,0X00,
0X00,0X00,0X04,0X00,0X02,0X38,0X00,0X00,0X00,0X00,0X07,0XFF,0XFF,0X00,0X00,0X00,
0X00,0X00,0X07,0X00,0X07,0X00,0X00,0X00,0X00,0X00,0X09,0X00,0X04,0X80,0X00,0X00,
0X00,0X00,0X11,0X80,0X0C,0XC0,0X00,0X00,0X00,0XFF,0X30,0X80,0X18,0X7F,0XE0,0X00,
0X03,0X80,0XE0,0XC0,0X30,0X70,0X38,0X00,0X06,0X00,0XF0,0X60,0X21,0XB0,0X06,0X00,
0X08,0X00,0X88,0X20,0X43,0X10,0X03,0X00,0X10,0X01,0X04,0X30,0X86,0X08,0X01,0X00,
0X30,0X03,0X0E,0XFF,0X84,0X0C,0X00,0X80,0X20,0X1F,0XFF,0X31,0X8C,0X04,0X00,0XC0,
0X60,0X32,0X02,0X20,0X8C,0X00,0X00,0XC0,0X60,0X22,0X02,0X24,0XC8,0X00,0X00,0XC0,
0X60,0X1F,0X02,0X3C,0X8C,0X00,0X00,0XC0,0X30,0X0F,0XFF,0XFF,0X04,0X00,0X00,0X80,
0X10,0X00,0X04,0X18,0X04,0X00,0X01,0X80,0X18,0X00,0X0C,0X08,0X02,0X00,0X03,0X00,
0X0C,0X00,0X18,0X00,0X01,0X00,0X06,0X00,0X07,0X00,0X70,0X00,0X00,0XC0,0X0C,0X00,
0X01,0XFF,0XC0,0X00,0X00,0X3F,0XF0,0X00,0X00,0X3E,0X00,0X00,0X00,0X0F,0XC0,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
])
#无限循环
while True:
    bikeWidth=60    #自行车图片宽度
    bikeHeight=30   #自行车图片高度
    bikeInitX=34    #初始化自行车的X中央点,屏幕宽度128/2-补偿自行车宽度30=34
    bikeInitY=35    #初始化自行车的Y点,手动测量调为35即可
    y=accelerometer.get_y() #如官方说明图所示,y轴和x轴是相反的,所以这里获取的是y轴加速度
    if y<=1 and y>=-1:      #定界,其实不定也行。用于下面设定变量转换
      offsetX=int(numberMap(y,1,-1,-60,128)) #-60=最小宽度0-自行车宽度,128为屏幕最大宽度
      #offsetX主要把y轴的加速度转换成屏幕的宽度分辨率
      #numberMap变量转换说明
      #numberMap(输入值,需映射的最小值,需映射的最大值,映射出的最小值,映射出的最大值)
      #比如numberMap(i,1,2,10000,20000)
      #即i是变量,范围在1~2之间,通过numberMap函数你可以得到转换后的范围,在10000-2000之间
      #如i是1.5则返回15000,i是1.8返回18000,以此类推
      move_x=offsetX #移动的坐标
      #清除
      oled.fill(0)
      #填充图形
      oled.Bitmap(move_x,bikeInitY, bmp, bikeWidth, bikeHeight, 1)
      #填充左侧钉子,手绘坐标
      oled.line(0,64,2,58,1)
      oled.line(2,58,4,64,1)
      #填充右侧钉子,手绘坐标
      oled.line(127,64,125,58,1)
      oled.line(125,58,123,64,1)
      #判断是否碰到左右钉子边界,并填充文字提示
      if move_x+bikeWidth >=125:
            oled.DispChar('老铁,扎前胎了!', 60-14, 0)
      if move_x+bikeWidth<=58:
            oled.DispChar('老铁,扎后胎了!',0,0)
      #显示图形文字
      oled.show()

驴友花雕 发表于 2020-6-26 13:45:31

本帖最后由 驴友花雕 于 2020-6-26 13:47 编辑

#MicroPython动手做(35)——小游戏
#平衡自行车(实验视频)

https://v.youku.com/v_show/id_XN ... oneSokuUgc_1.dtitle


https://v.youku.com/v_show/id_XNDcyNzY3NTUzMg==.html?spm=a2h0c.8166622.PhoneSokuUgc_1.dtitle

驴友花雕 发表于 2020-6-26 13:54:40

5、贪吃蛇2
使用三轴传感器控制前后左右


#MicroPython动手做(35)——小游戏
#贪吃蛇2

from mpython import *
import random, time

WIDTH, HEIGHT = 127, 63


class Direction():
    """
    贪吃蛇方向,含上下左右
    """

    UP = 0
    DOWN = 1
    LEFT = 2
    RIGHT = 3


class GameState():
    """
    游戏状态
    """
    PLAYING = 0
    PAUSE = 1
    WIN = 2
    FAIL = 3


class Snake():
    """
    贪吃蛇

    构建snake

    :param cube(int): 网格大小默认4
    """

    def __init__(self, cube=4):

      self.cube_width = cube
      self.grid_width_num, self.grid_height_num = WIDTH // self.cube_width, HEIGHT // self.cube_width
      self.snake_body = []
      self.snake_body.append((int(self.grid_width_num // 2 * self.cube_width),
                              int(self.grid_height_num // 2 * self.cube_width)))# 添加贪吃蛇的“头”
      self.food_pos = self.generate_food()
      self.direction = Direction.LEFT

    def draw_grids(self):
      """
      绘制网格
      """
      for i in range(self.grid_width_num + 1):
            oled.vline(self.cube_width * i, 0, HEIGHT, 1)

      for i in range(self.grid_height_num + 1):
            oled.hline(0, self.cube_width * i, WIDTH, 1)

    def draw_body(self):
      """
      绘制snake
      """
      for sb in self.snake_body:
            # pygame.draw.rect(screen, WHITE, (sb, sb, CUBE_WIDTH, CUBE_WIDTH))
            oled.fill_rect(sb, sb, self.cube_width, self.cube_width, 1)

    def generate_food(self):
      """
      随机产生一个食物
      """
      self.food_pos = (random.randint(0, self.cube_width - 1), random.randint(0, self.grid_height_num - 1))
      return self.food_pos

    def draw_food(self):
      """
      绘制食物
      """
      oled.fill_rect(self.food_pos * self.cube_width, self.food_pos * self.cube_width, self.cube_width,
                     self.cube_width, 1)

    def grow(self):
      """
      判断贪吃蛇是否吃到了事物,如果吃到了我们就加长小蛇的身体
      """
      if self.snake_body == self.food_pos * self.cube_width and \
            self.snake_body == self.food_pos * self.cube_width:
            return True

      return False

    def refresh(self):
      """
      更新小蛇身体的位置
      """
      for i in range(len(self.snake_body) - 1, 0, -1):
            self.snake_body = self.snake_body

    def move(self):
      """
      移动snake身体
      """
      if self.direction == Direction.UP:
            self.snake_body = (self.snake_body, self.snake_body - self.cube_width)

      elif self.direction == Direction.DOWN:
            self.snake_body = (self.snake_body, self.snake_body + self.cube_width)

      # top += cube_width
      elif self.direction == Direction.LEFT:

            self.snake_body = (self.snake_body - self.cube_width, self.snake_body)

      # left -= cube_width
      elif self.direction == Direction.RIGHT:
            self.snake_body = (self.snake_body + self.cube_width, self.snake_body)


class Game():
    """
    snake游戏控制
    """

    def __init__(self, fps=8):
      self.snake = Snake()
      self.get_body = self.snake.snake_body
      self.state = None
      self.fps = fps
      self.handles_cb = None

    def is_win(self):
      """
      判断是否赢
      """
      return len(self.get_body) == WIDTH * HEIGHT - 1

    def is_fail(self):
      """
      判断是否输
      """
      if not 0 <= self.get_body < WIDTH or not 0 <= self.get_body < HEIGHT:
            return True

      return False

    @property
    def score(self):
      """
      游戏分数
      """
      return len(self.get_body) - 1

    def handles_accele(self, threshold=0.2):
      """
      掌控板加速度控制
      """
      x = accelerometer.get_x()
      y = accelerometer.get_y()
      if y <= 1 and y >= -1:
            if abs(y) > threshold:
                if y > 0:
                  self.snake.direction = Direction.LEFT
                else:
                  self.snake.direction = Direction.RIGHT
      if x <= 1 and x >= -1:
            if abs(x) > threshold:
                if x > 0:
                  self.snake.direction = Direction.DOWN
                else:
                  self.snake.direction = Direction.UP

    def handles_callback(self, f):
      """
      游戏控制回调函数,可外部自定义控制方式
      """
      self.handles_cb = f

    def run(self):
      """
      游戏运行
      """
      self.state = GameState.PLAYING
      update_time = time.ticks_ms()

      while self.state == GameState.PLAYING:# 游戏状态为PLAYING

            self.handles_cb()# 游戏控制回调函数

            # 显示帧刷新,刷新方块位置
            if time.ticks_diff(time.ticks_ms(), update_time) > (1000 // self.fps):

                last_pos = self.get_body[-1]# 这里需要保存一下尾部的位置,如果小蛇迟到了食物,需要在尾部增长

                self.snake.refresh()# 更新小蛇身体的位置
                self.snake.move()# 改变头部的位置

                if self.snake.grow():# 判断小蛇是否吃到了事物,吃到了就成长,如果吃到了事物我们就产生一个新的食物
                  self.snake.generate_food()
                  self.get_body.append(last_pos)

                oled.fill(0)# 清屏
                self.snake.draw_body()# 画小蛇的身体
                self.snake.draw_food()# 画出食物

                oled.show()# 显示生效
                update_time = time.ticks_ms()# 刷新帧时间

                if self.is_fail():# 判断if输
                  self.state = GameState.FAIL
                  break
                if self.is_win():# 判断if赢
                  self.state = GameState.WIN
                  break

      if self.state == GameState.FAIL:# 输了,显示分数
            oled.fill(0)
            oled.text('Game over!', 25, 20)
            oled.text('Score:%d' % self.score, 25, 32)
            oled.show()

      if self.state == GameState.WIN:# 赢了!
            oled.fill(0)
            oled.text('You win!', 25, 20)
            oled.show()


if __name__ == '__main__':
    game = Game(fps=8)
    game.handles_callback(game.handles_accele)
    game.run()

驴友花雕 发表于 2020-6-26 14:02:55

6、记忆力大比拼(shworld)
产生8位随机键序→累加用户的输入键序→判断键序


#MicroPython动手做(35)——小游戏
#记忆力大比拼

from mpython import *
import time
import random
isStart=False    #是否首次载入,不然游戏中按A键又初始化了
inputKey=''      #键序,统计用户输入的键序,如11112222
inputKey_STR=''#同键序,文本型,只不过用来显示,当前"当前您已输入AAABBBB"
keyOrder=''      #获取到的8位随机键序,如11112222

#获取随机8位键序
def makeKeyOrder():
    keys=''
    for i in range(8):#循环8次
      key = random.randrange(1, 3)#获取范围1到2, 1为A键,2位B键
      keys = keys + str(key)
    return keys
keyOrder = makeKeyOrder() #返回获取到的8位键序,如11112222


#覆写oledshow,主要减少重复代码量
def oledshow(str,y=0,isClear=True):
    if isClear==False:
      oled.DispChar(str, 0,y)
      oled.show()
      return
    oled.fill(0)
    oled.DispChar(str, 0,y)
    oled.show()


#倒计时显示3-2-1
def countdownshow():
    j=4
    for i in range(3):
      j = j-1
      oledshow('倒计时:%s'%str(j),0)
      time.sleep(1)

      
#每次用户按键后触发该方法
def checkKey():
    global keyOrder,inputKey,inputKey_STR #引用全局变量,如果不修改变量,不需要申明global
    if len(inputKey)==8:                  #如果当前按键数等于8位才开始进行对比
      if inputKey==keyOrder:            #如果输入的8位键序和生成的8位键序匹配
            oledshow('恭喜您,按对了!...',0)#按键正确,输出内容
      else:
            oledshow('别灰心,再接再厉!...',0)#否则按键失败,输出内容
            
      #重新开始下一轮
      time.sleep(2)   #暂停2秒,避免内容切换过快看不到
      inputKey=''   #清空用户输入的键值,如11112222
      inputKey_STR='' #清空用户输入的键值,文本型,如AAAABBBB
      oledshow('下一题开始:',0)
      time.sleep(2)
      keyOrder = makeKeyOrder() #重新获取8位键序,11112222
      countdownshow()         #倒计时显示3-2-1
      showKey()               #显示要记忆的键序
      
   
#显示键序
#主要是把数字11112222,转换成对应的AAAABBBB,很好理解,多看看
def showKey():
    global keyOrder#引用全局变量
    key_str=''   #局部变量
    for key in keyOrder:
      if key=='1':
            key_str=key_str+"A"
      if key=='2':
            key_str=key_str+"B"
    oledshow(key_str,0)
    time.sleep(1)
    oledshow('',0)

      
#按键A触发事件
def on_button_a_down(_):
    time.sleep_ms(100)   #延迟调高点,避免产生2次按键事件
    global isStart,inputKey,inputKey_STR #引用全局变量

    if button_a.value() == 1: return
    if isStart == True:
      inputKey=inputKey+'1'         #统计用户键序
      inputKey_STR=inputKey_STR+'A'   #统计用户键序,文本型,用来显示当前的输入
      oledshow('您输入的是:'+inputKey_STR,0) #显示当前的输入
      checkKey()                      #输入的键序进行校验匹配
      return
    isStart=True
    oledshow('游戏现在开始...',0)
    time.sleep(1)
    countdownshow()
    showKey()
   
#按键B触发事件
def on_button_b_down(_):
    time.sleep_ms(100)#延迟调高点,避免产生2次按键事件
    global inputKey,inputKey_STR
    if button_b.value() == 1: return
    if isStart == True:
      inputKey=inputKey+'2'            #统计用户键序
      inputKey_STR=inputKey_STR+'B'    #统计用户键序,文本型,用来显示当前的输入
      oledshow('您输入的是:'+inputKey_STR,0) #显示当前的输入
      checkKey()                     #输入的键序进行校验匹配
      return
   
#按键触发监视
button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)
button_b.irq(trigger=Pin.IRQ_FALLING, handler=on_button_b_down)

#游戏启动
oledshow('【记忆力大比拼】',0,False)
oledshow('记忆屏幕出现的键序',16,False)
oledshow('如ABABAA,请依次键入',32,False)
oledshow('按A键自动开始游戏',48,False)

驴友花雕 发表于 2020-6-26 14:17:15

记忆力大比拼


驴友花雕 发表于 2020-6-26 14:32:54

本帖最后由 驴友花雕 于 2020-6-26 14:41 编辑

7、吃鸡游戏(luyi)






驴友花雕 发表于 2020-6-26 14:39:02

#MicroPython动手做(35)——小游戏
#吃鸡游戏

from mpython import *
import time
import random
import music

def zhunxing():
    global grade, zidan, foodstate, yy, diY, xx, diX
    oled.hline((xx - 10), yy, 20, 1)
    oled.vline(xx, (yy - 10), 20, 1)
    oled.circle(xx, yy, 6, 1)

random.seed(time.ticks_cpu())


oled.fill(0)
oled.DispChar("今晚吃鸡?", 32, 26, 1)
oled.show()
time.sleep(3)
xx = 64
yy = 32
foodstate = True
grade = 0
zidan = 10
while True:
    if foodstate:
      diX = random.randint(4, 120)
      diY = random.randint(4, 60)
      foodstate = False
    xx = int(numberMap(accelerometer.get_y(),(-0.5),0.5,2,125))
    yy = int(numberMap(accelerometer.get_x(),0.5,(-0.5),2,61))
    if xx >= 2 and xx <= 125 and yy >= 2 and yy <= 61:
      oled.fill(0)
      oled.fill_circle(diX, diY, 4, 1)
      zhunxing()
      oled.show()
    if button_a.value() == 0 or button_b.value() == 0:
      rgb.fill((int(255), int(0), int(0)))
      rgb.write()
      time.sleep_ms(1)
      music.play('C3:1')
      zidan = zidan + -1
      if diX >= xx - 2 and diX <= xx + 2 and diY >= yy - 2 and diY <= yy + 2:
            foodstate = True
            grade = grade + 1
            if zidan <= 0:
                oled.fill(0)
                oled.DispChar("             游戏结束", 0, 16, 1)
                oled.DispChar(str("            得分:") + str(grade), 0, 32, 1)
                oled.show()
                break
      time.sleep_ms(100)
      rgb.fill( (0, 0, 0) )
      rgb.write()
      time.sleep_ms(1)

驴友花雕 发表于 2020-6-26 14:47:32

mPython X 实验图形编程


驴友花雕 发表于 2020-6-26 15:02:06

mPython X 实验图形编程2


驴友花雕 发表于 2020-6-26 15:10:16


页: [1] 2 3
查看完整版本: MicroPython动手做(35)——体验小游戏