From 435d69f5eb9ada60e6a8f5de48d6bb2f7f47534c Mon Sep 17 00:00:00 2001 From: hhb Date: Thu, 20 Sep 2012 10:39:15 +0800 Subject: [PATCH] phonepad:touch screen: add ct360 driver --- drivers/input/touchscreen/Kconfig | 4 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/ct360_calib.h | 12 + drivers/input/touchscreen/ct360_ch.h | 1027 +++++++++++++++++++++++ drivers/input/touchscreen/ct360_ts.c | 719 ++++++++++++++++ 5 files changed, 1763 insertions(+) mode change 100755 => 100644 drivers/input/touchscreen/Kconfig create mode 100644 drivers/input/touchscreen/ct360_calib.h create mode 100644 drivers/input/touchscreen/ct360_ch.h create mode 100644 drivers/input/touchscreen/ct360_ts.c diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig old mode 100755 new mode 100644 index 12ae08ef0ed1..d2ab259581d0 --- a/drivers/input/touchscreen/Kconfig +++ b/drivers/input/touchscreen/Kconfig @@ -999,6 +999,10 @@ config TOUCHSCREEN_GT819 tristate "GT819 based touchscreens" depends on I2C2_RK29 +config TOUCHSCREEN_CT360_IIC + tristate "CT360 based touchscreens" + depends on I2C_RK29 || I2C_RK30 + config TOUCHSCREEN_FT5306 tristate "FT5306 based touchscreens: FT5306 Interface" depends on I2C2_RK29 || I2C2_RK30 diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile index 16e5cdef5135..4959df0a7342 100644 --- a/drivers/input/touchscreen/Makefile +++ b/drivers/input/touchscreen/Makefile @@ -77,6 +77,7 @@ obj-$(CONFIG_ATMEL_MXT1386) += atmel_mxt1386.o obj-$(CONFIG_TOUCHSCREEN_GT801_IIC) += gt801_ts.o obj-$(CONFIG_TOUCHSCREEN_GT82X_IIC) += goodix_touch_82x.o obj-$(CONFIG_TOUCHSCREEN_GT818_IIC) += gt818_ts.o +obj-$(CONFIG_TOUCHSCREEN_CT360_IIC) += ct360_ts.o obj-$(CONFIG_TOUCHSCREEN_ILI2102_IIC) += ili2102_ts.o obj-$(CONFIG_D70_L3188A) += goodix_touch.o obj-$(CONFIG_TOUCHSCREEN_GT8XX) += rk29_i2c_goodix.o diff --git a/drivers/input/touchscreen/ct360_calib.h b/drivers/input/touchscreen/ct360_calib.h new file mode 100644 index 000000000000..7e3890acf153 --- /dev/null +++ b/drivers/input/touchscreen/ct360_calib.h @@ -0,0 +1,12 @@ + +struct ct360_ts_data { + u16 x_max; + u16 y_max; + bool swap_xy; //define? + int irq; + struct i2c_client *client; + struct input_dev *input_dev; + struct workqueue_struct *ct360_wq; + struct work_struct work; + struct early_suspend early_suspend; +}; diff --git a/drivers/input/touchscreen/ct360_ch.h b/drivers/input/touchscreen/ct360_ch.h new file mode 100644 index 000000000000..cbed5b476f45 --- /dev/null +++ b/drivers/input/touchscreen/ct360_ch.h @@ -0,0 +1,1027 @@ +char Binary_Data [16384] = +{ +0x00,0x02,0x1B,0xC0,0xD2,0x08,0x32,0x32,0x32,0x32,0x00,0x02,0x00,0x04,0x00,0x00, +0x00,0x00,0x00,0x02,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x08,0x00,0x00, +0x00,0x00,0x00,0x02,0x19,0xCF,0x00,0x00,0x00,0x00,0x00,0x02,0x1C,0x57,0x00,0x00, +0x00,0x00,0x00,0x02,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x20,0xFA,0x10,0x90,0xF0, +0x36,0xE0,0x20,0xE0,0x09,0xE0,0x30,0xE2,0x05,0x75,0x9E,0x55,0x80,0xED,0x90,0xF0, +0x36,0x74,0x46,0xF0,0x30,0xF9,0x10,0x90,0xF0,0x34,0x74,0x05,0xF0,0x90,0xF0,0x36, +0xE0,0x44,0x01,0xF0,0xC2,0x10,0x22,0x30,0xF8,0x03,0xD2,0x0E,0x22,0x90,0xF0,0x51, +0xE0,0xD3,0x94,0x00,0x40,0x07,0x90,0xF0,0x36,0xE0,0x44,0x10,0xF0,0x90,0xF0,0x50, +0xE0,0xD3,0x94,0x00,0x40,0x07,0x90,0xF0,0x36,0xE0,0x44,0x08,0xF0,0x22,0xEF,0x1F, +0x70,0x01,0x1E,0x75,0x9E,0x55,0xD3,0xEF,0x94,0x00,0xEE,0x94,0x00,0x50,0xEF,0x22, +0x90,0x0C,0xE6,0x74,0x56,0xF0,0xA3,0x74,0x54,0xF0,0xA3,0x74,0x4C,0xF0,0x22,0xE4, +0xF5,0x0B,0x75,0x0D,0x75,0x75,0x0E,0x30,0xF5,0x13,0x90,0x09,0x00,0xE0,0xF5,0x14, +0xF5,0x0C,0xC2,0x0C,0xC2,0x0D,0x75,0x9E,0x55,0xE4,0xF5,0x09,0x74,0x45,0x25,0x09, +0xF8,0xE6,0xFF,0x70,0x03,0x02,0x02,0x29,0x64,0x03,0x70,0x03,0x02,0x02,0x29,0x05, +0x0B,0x76,0x04,0xE4,0xF5,0x0A,0xE5,0x0A,0xC3,0x95,0x14,0x40,0x03,0x02,0x02,0x30, +0xE5,0x09,0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3, +0xE0,0xFF,0xE5,0x0A,0x25,0xE0,0x24,0x00,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0, +0xFC,0xA3,0xE0,0xC3,0x9F,0xEE,0x64,0x80,0xF8,0xEC,0x64,0x80,0x98,0x40,0x2D,0xE5, +0x09,0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0, +0xFF,0xE5,0x0A,0x25,0xE0,0x24,0x00,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFC, +0xA3,0xE0,0xC3,0x9F,0xF5,0x16,0xEC,0x9E,0xF5,0x15,0x80,0x2B,0xE5,0x0A,0x25,0xE0, +0x24,0x00,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0xE5,0x09, +0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFC,0xA3,0xE0,0xC3, +0x9F,0xF5,0x16,0xEC,0x9E,0xF5,0x15,0xE5,0x09,0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4, +0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0xE5,0x0A,0x25,0xE0,0x24,0x14,0xF5, +0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFC,0xA3,0xE0,0xC3,0x9F,0xEE,0x64,0x80,0xF8, +0xEC,0x64,0x80,0x98,0x40,0x2D,0xE5,0x09,0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34, +0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0xE5,0x0A,0x25,0xE0,0x24,0x14,0xF5,0x82, +0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFC,0xA3,0xE0,0xC3,0x9F,0xF5,0x18,0xEC,0x9E,0xF5, +0x17,0x80,0x2B,0xE5,0x0A,0x25,0xE0,0x24,0x14,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83, +0xE0,0xFE,0xA3,0xE0,0xFF,0xE5,0x09,0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E, +0xF5,0x83,0xE0,0xFC,0xA3,0xE0,0xC3,0x9F,0xF5,0x18,0xEC,0x9E,0xF5,0x17,0xE5,0x16, +0x25,0x18,0xFF,0xE5,0x15,0x35,0x17,0xFE,0xE5,0x09,0x75,0xF0,0x14,0xA4,0x24,0x00, +0xF5,0x82,0xE4,0x34,0x0D,0xF5,0x83,0x75,0xF0,0x02,0xE5,0x0A,0x12,0x17,0x9D,0xEE, +0xF0,0xA3,0xEF,0xF0,0x05,0x0A,0x02,0x00,0xE6,0x74,0x45,0x25,0x09,0xF8,0xE4,0xF6, +0x05,0x09,0xE5,0x09,0x64,0x05,0x60,0x03,0x02,0x00,0xCC,0xE4,0xF5,0x0A,0xE5,0x0A, +0xC3,0x95,0x14,0x50,0x0B,0x74,0x36,0x25,0x0A,0xF8,0x76,0x01,0x05,0x0A,0x80,0xEE, +0x75,0x9E,0x55,0xE5,0x0B,0xD3,0x94,0x00,0x50,0x03,0x02,0x04,0xDC,0xE5,0x0C,0xD3, +0x94,0x00,0x50,0x03,0x02,0x04,0xDC,0xE4,0xF5,0x0A,0xE5,0x0A,0xC3,0x95,0x14,0x50, +0x6E,0x74,0x36,0x25,0x0A,0xF8,0xE6,0x64,0x01,0x70,0x60,0xF5,0x09,0x74,0x45,0x25, +0x09,0xF8,0xE6,0x64,0x04,0x70,0x4D,0xE5,0x09,0x75,0xF0,0x14,0xA4,0x24,0x00,0xF5, +0x82,0xE4,0x34,0x0D,0xF5,0x83,0x75,0xF0,0x02,0xE5,0x0A,0x12,0x17,0x9D,0xE0,0xFE, +0xA3,0xE0,0xC3,0x95,0x0E,0xE5,0x0D,0x64,0x80,0xF8,0xEE,0x64,0x80,0x98,0x50,0x24, +0xE5,0x09,0x75,0xF0,0x14,0xA4,0x24,0x00,0xF5,0x82,0xE4,0x34,0x0D,0xF5,0x83,0x75, +0xF0,0x02,0xE5,0x0A,0x12,0x17,0x9D,0xE0,0xF5,0x0D,0xA3,0xE0,0xF5,0x0E,0x85,0x0A, +0x0F,0x85,0x09,0x10,0x05,0x09,0xE5,0x09,0xB4,0x05,0xA2,0x05,0x0A,0x80,0x8B,0xC3, +0xE5,0x0E,0x94,0xF4,0xE5,0x0D,0x64,0x80,0x94,0x81,0x40,0x03,0x02,0x04,0xDC,0xE5, +0x0F,0x25,0xE0,0x24,0x00,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0, +0xFF,0xE5,0x10,0x25,0xE0,0x24,0x50,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFC, +0xA3,0xE0,0xC3,0x9F,0xFF,0xEC,0x9E,0xFE,0x12,0x1C,0x6D,0x8E,0x1D,0x8F,0x1E,0xE5, +0x0F,0x25,0xE0,0x24,0x14,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0, +0xFF,0xE5,0x10,0x25,0xE0,0x24,0x64,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFC, +0xA3,0xE0,0xC3,0x9F,0xFF,0xEC,0x9E,0xFE,0x12,0x1C,0x6D,0xAD,0x07,0xAC,0x06,0x12, +0x17,0x3F,0xAA,0x06,0xAB,0x07,0xAC,0x1D,0xAD,0x1E,0xAE,0x1D,0xAF,0x1E,0x12,0x17, +0x3F,0xEF,0x2B,0xFF,0xEE,0x3A,0xFE,0xD3,0xEF,0x94,0x64,0xEE,0x64,0x80,0x94,0x80, +0x50,0x14,0xEF,0x94,0x08,0xEE,0x64,0x80,0x94,0x80,0x40,0x10,0xEF,0x94,0x1A,0xEE, +0x64,0x80,0x94,0x80,0x50,0x06,0xD2,0x0C,0xD2,0x0D,0x80,0x04,0xC2,0x0C,0xC2,0x0D, +0xA2,0x0D,0x82,0x0C,0x40,0x03,0x02,0x04,0xB5,0xE5,0x10,0x25,0xE0,0x24,0x28,0xF5, +0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0x78,0x02,0xCE,0xA2,0xE7,0x13, +0xCE,0x13,0xD8,0xF8,0xFD,0xAC,0x06,0xE5,0x0F,0x25,0xE0,0x24,0x00,0xF5,0x82,0xE4, +0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0x78,0x02,0xCE,0xA2,0xE7,0x13,0xCE,0x13, +0xD8,0xF8,0x2D,0xFD,0xEE,0x3C,0xFC,0xE5,0x10,0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4, +0x34,0x0E,0xF5,0x83,0xE0,0xA2,0xE7,0x13,0xFE,0xA3,0xE0,0x13,0x2D,0xFF,0xEC,0x3E, +0xFE,0xE5,0x10,0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0, +0xA3,0xEF,0xF0,0xE5,0x10,0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83, +0xE0,0xFE,0xA3,0xE0,0x78,0x02,0xCE,0xA2,0xE7,0x13,0xCE,0x13,0xD8,0xF8,0xFD,0xAC, +0x06,0xE5,0x0F,0x25,0xE0,0x24,0x14,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE, +0xA3,0xE0,0x78,0x02,0xCE,0xA2,0xE7,0x13,0xCE,0x13,0xD8,0xF8,0x2D,0xFD,0xEE,0x3C, +0xFC,0xE5,0x10,0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xA2, +0xE7,0x13,0xFE,0xA3,0xE0,0x13,0x2D,0xFF,0xEC,0x3E,0xFE,0xE5,0x10,0x25,0xE0,0x24, +0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0xE5,0x0F,0x25, +0xE0,0x24,0x00,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0xE5, +0x10,0x25,0xE0,0x24,0x50,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF, +0xF0,0xE5,0x0F,0x25,0xE0,0x24,0x14,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE, +0xA3,0xE0,0xFF,0xE5,0x10,0x25,0xE0,0x24,0x64,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83, +0xEE,0xF0,0xA3,0xEF,0xF0,0x74,0x2C,0x25,0x10,0xF8,0x76,0x03,0x74,0x45,0x25,0x10, +0xF8,0x76,0x02,0x74,0x36,0x25,0x0F,0xF8,0xE4,0xF6,0x75,0x0D,0x75,0x75,0x0E,0x30, +0x15,0x0B,0x15,0x0C,0x05,0x13,0x75,0x9E,0x55,0x02,0x02,0x53,0xE5,0x13,0xC3,0x94, +0x0A,0x40,0x03,0x02,0x08,0x1D,0xE5,0x0B,0x94,0x00,0x50,0x03,0x02,0x08,0x1D,0xE4, +0xF5,0x09,0x74,0x45,0x25,0x09,0xF8,0xE6,0x64,0x04,0x60,0x03,0x02,0x08,0x12,0xE5, +0x13,0xC3,0x94,0x0A,0x40,0x03,0x02,0x08,0x12,0x30,0x0F,0x5C,0xE5,0x09,0x25,0xE0, +0x24,0x50,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0xE5,0x09, +0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0, +0xE5,0x09,0x25,0xE0,0x24,0x64,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3, +0xE0,0xFF,0xE5,0x09,0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE, +0xF0,0xA3,0xEF,0xF0,0x76,0x03,0xD2,0x0C,0xD2,0x0D,0x15,0x0B,0x05,0x13,0x74,0x2C, +0x25,0x09,0xF8,0xE4,0xF6,0x02,0x08,0x12,0x74,0x2C,0x25,0x09,0xF8,0xE6,0xFD,0x60, +0x03,0x02,0x06,0x60,0xD2,0x0C,0xD2,0x0D,0xE5,0x09,0x25,0xE0,0x24,0x28,0xF5,0x82, +0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0x78,0x02,0xCE,0xA2,0xE7,0x13,0xCE, +0x13,0xD8,0xF8,0xFB,0xAA,0x06,0xE5,0x09,0x25,0xE0,0x24,0x50,0xF5,0x82,0xE4,0x34, +0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0x78,0x02,0xCE,0xA2,0xE7,0x13,0xCE,0x13,0xD8, +0xF8,0x2B,0xFB,0xEE,0x3A,0xFA,0xE5,0x09,0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4,0x34, +0x0E,0xF5,0x83,0xE0,0xA2,0xE7,0x13,0xFE,0xA3,0xE0,0x13,0x2B,0xFF,0xEA,0x3E,0xFE, +0xE5,0x09,0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3, +0xEF,0xF0,0xE5,0x09,0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0, +0xFE,0xA3,0xE0,0x78,0x02,0xCE,0xA2,0xE7,0x13,0xCE,0x13,0xD8,0xF8,0xFB,0xAA,0x06, +0xE5,0x09,0x25,0xE0,0x24,0x64,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3, +0xE0,0x78,0x02,0xCE,0xA2,0xE7,0x13,0xCE,0x13,0xD8,0xF8,0x2B,0xFB,0xEE,0x3A,0xFA, +0xE5,0x09,0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xA2,0xE7, +0x13,0xFE,0xA3,0xE0,0x13,0x2B,0xFF,0xEA,0x3E,0xFE,0xE5,0x09,0x25,0xE0,0x24,0x3C, +0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0x74,0x45,0x25,0x09, +0xF8,0x76,0x02,0x15,0x0B,0x05,0x13,0x74,0x2C,0x25,0x09,0xF8,0x06,0x02,0x08,0x12, +0xED,0x64,0x01,0x60,0x03,0x02,0x07,0x04,0xD2,0x0C,0xD2,0x0D,0xE5,0x09,0x25,0xE0, +0x24,0x50,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xA2,0xE7,0x13,0xFC,0xA3,0xE0, +0x13,0xFD,0xE5,0x09,0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0, +0xA2,0xE7,0x13,0xFE,0xA3,0xE0,0x13,0x2D,0xFF,0xEE,0x3C,0xFE,0xE5,0x09,0x25,0xE0, +0x24,0x28,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0xE5,0x09, +0x25,0xE0,0x24,0x64,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xA2,0xE7,0x13,0xFC, +0xA3,0xE0,0x13,0xFD,0xE5,0x09,0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5, +0x83,0xE0,0xA2,0xE7,0x13,0xFE,0xA3,0xE0,0x13,0x2D,0xFF,0xEE,0x3C,0xFE,0xE5,0x09, +0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0, +0x74,0x45,0x25,0x09,0xF8,0x76,0x02,0x15,0x0B,0x05,0x13,0x74,0x2C,0x25,0x09,0xF8, +0x06,0x02,0x08,0x12,0x74,0x2C,0x25,0x09,0xF8,0xE6,0x64,0x02,0x60,0x03,0x02,0x07, +0xFC,0xD2,0x0C,0xD2,0x0D,0xE5,0x09,0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4,0x34,0x0E, +0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0x78,0x02,0xCE,0xA2,0xE7,0x13,0xCE,0x13,0xD8,0xF8, +0xFD,0xAC,0x06,0xE5,0x09,0x25,0xE0,0x24,0x50,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83, +0xE0,0xFE,0xA3,0xE0,0x78,0x02,0xCE,0xA2,0xE7,0x13,0xCE,0x13,0xD8,0xF8,0x2D,0xFD, +0xEE,0x3C,0xFC,0xE5,0x09,0x25,0xE0,0x24,0x50,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83, +0xE0,0xA2,0xE7,0x13,0xFE,0xA3,0xE0,0x13,0x2D,0xFF,0xEC,0x3E,0xFE,0xE5,0x09,0x25, +0xE0,0x24,0x28,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0xE5, +0x09,0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0, +0x78,0x02,0xCE,0xA2,0xE7,0x13,0xCE,0x13,0xD8,0xF8,0xFD,0xAC,0x06,0xE5,0x09,0x25, +0xE0,0x24,0x64,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0x78,0x02, +0xCE,0xA2,0xE7,0x13,0xCE,0x13,0xD8,0xF8,0x2D,0xFD,0xEE,0x3C,0xFC,0xE5,0x09,0x25, +0xE0,0x24,0x64,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xA2,0xE7,0x13,0xFE,0xA3, +0xE0,0x13,0x2D,0xFF,0xEC,0x3E,0xFE,0xE5,0x09,0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4, +0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0x74,0x45,0x25,0x09,0xF8,0x76,0x02, +0x15,0x0B,0x05,0x13,0x74,0x2C,0x25,0x09,0xF8,0x06,0x80,0x16,0x74,0x45,0x25,0x09, +0xF8,0x76,0x03,0xD2,0x0C,0xD2,0x0D,0x15,0x0B,0x05,0x13,0x74,0x2C,0x25,0x09,0xF8, +0xE4,0xF6,0x05,0x09,0xE5,0x09,0x64,0x05,0x60,0x03,0x02,0x04,0xF2,0xE5,0x13,0xC3, +0x94,0x0A,0x40,0x03,0x02,0x09,0x19,0xE5,0x0C,0x94,0x00,0x50,0x03,0x02,0x09,0x19, +0xE4,0xF5,0x0A,0xE5,0x0A,0xC3,0x95,0x14,0x40,0x03,0x02,0x09,0x19,0x74,0x36,0x25, +0x0A,0xF8,0xE6,0x64,0x01,0x60,0x03,0x02,0x09,0x14,0xF5,0x09,0xD2,0x0C,0xD2,0x0D, +0x74,0x45,0x25,0x09,0xF8,0xE6,0x60,0x03,0x02,0x09,0x09,0xE5,0x13,0xC3,0x94,0x0A, +0x40,0x03,0x02,0x09,0x09,0xE5,0x0A,0x25,0xE0,0x24,0x00,0xF5,0x82,0xE4,0x34,0x0E, +0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0xE5,0x09,0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4, +0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0xE5,0x0A,0x25,0xE0,0x24,0x14,0xF5, +0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0xE5,0x09,0x25,0xE0,0x24, +0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0xE5,0x0A,0x25, +0xE0,0x24,0x00,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0xE5, +0x09,0x25,0xE0,0x24,0x50,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF, +0xF0,0xE5,0x0A,0x25,0xE0,0x24,0x14,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE, +0xA3,0xE0,0xFF,0xE5,0x09,0x25,0xE0,0x24,0x64,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83, +0xEE,0xF0,0xA3,0xEF,0xF0,0x76,0x01,0x74,0x36,0x25,0x0A,0xF8,0xE4,0xF6,0x05,0x13, +0x74,0x2C,0x25,0x09,0xF8,0xE4,0xF6,0x80,0x0B,0x05,0x09,0xE5,0x09,0x64,0x05,0x60, +0x03,0x02,0x08,0x4C,0x05,0x0A,0x02,0x08,0x33,0x75,0x9E,0x55,0x22,0x75,0x09,0x00, +0x75,0x0A,0x50,0x75,0x0D,0x00,0x75,0x0E,0x06,0xE4,0xFB,0x74,0x45,0x2B,0xF8,0xE6, +0x70,0x03,0x02,0x0D,0x05,0xEB,0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4,0x34,0x0E,0xF5, +0x83,0xE0,0xFE,0xA3,0xE0,0xC3,0x95,0x0A,0xE5,0x09,0x64,0x80,0xF8,0xEE,0x64,0x80, +0x98,0x40,0x03,0x02,0x09,0xE2,0xEB,0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4,0x34,0x0E, +0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0x24,0xF6,0xFF,0xEE,0x34,0xFF,0xFE,0xEB,0x25,0xE0, +0x24,0x78,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0xEB,0x25, +0xE0,0x24,0x78,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0xAC, +0x09,0xAD,0x0A,0x12,0x17,0x3F,0xE5,0x0A,0x24,0xF6,0xFD,0xE5,0x09,0x34,0xFF,0xFC, +0x12,0x17,0x51,0xEB,0x25,0xE0,0x24,0x78,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE, +0xF0,0xA3,0xEF,0xF0,0xEB,0x25,0xE0,0x24,0x78,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83, +0xE0,0xFE,0xA3,0xE0,0xC3,0xEE,0x64,0x80,0x94,0x80,0x40,0x03,0x02,0x0B,0x1D,0xEB, +0x25,0xE0,0x24,0x78,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE4,0xF0,0xA3,0xF0,0x02, +0x0B,0x1D,0x90,0xF0,0x37,0xE0,0x75,0xF0,0x20,0xA4,0xFF,0x24,0xF6,0xFF,0xE5,0xF0, +0x34,0xFF,0xCF,0xC3,0x95,0x0A,0xCF,0x95,0x09,0xFE,0xEB,0x25,0xE0,0x24,0x28,0xF5, +0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFC,0xA3,0xE0,0xD3,0x9F,0xEE,0x64,0x80,0xF8, +0xEC,0x64,0x80,0x98,0x50,0x03,0x02,0x0A,0xFB,0x90,0xF0,0x37,0xE0,0x75,0xF0,0x20, +0xA4,0xFF,0x24,0xF6,0xFF,0xE5,0xF0,0x34,0xFF,0xCF,0xC3,0x95,0x0A,0xCF,0x95,0x09, +0xFE,0xEB,0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFC,0xA3, +0xE0,0xC3,0x9F,0xFF,0xEC,0x9E,0xFE,0xEB,0x25,0xE0,0x24,0x78,0xF5,0x82,0xE4,0x34, +0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0xEB,0x25,0xE0,0x24,0x78,0xF5,0x82,0xE4, +0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0xAC,0x09,0xAD,0x0A,0x12,0x17,0x3F, +0xE5,0x0A,0x24,0xF6,0xFD,0xE5,0x09,0x34,0xFF,0xFC,0x12,0x17,0x51,0xEB,0x25,0xE0, +0x24,0x78,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0xF0, +0x37,0xE0,0x75,0xF0,0x20,0xA4,0xFF,0x24,0xF6,0xFF,0xE5,0xF0,0x34,0xFF,0xCF,0xC3, +0x95,0x0A,0xCF,0x95,0x09,0xFE,0xEB,0x25,0xE0,0x24,0x78,0xF5,0x82,0xE4,0x34,0x0E, +0xF5,0x83,0xEE,0x8F,0xF0,0x12,0x17,0x87,0x90,0xF0,0x37,0xE0,0x75,0xF0,0x20,0xA4, +0xFF,0xEB,0x25,0xE0,0x24,0x78,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFC,0xA3, +0xE0,0xD3,0x9F,0xE5,0xF0,0x64,0x80,0xF8,0xEC,0x64,0x80,0x98,0x40,0x3F,0x90,0xF0, +0x37,0xE0,0x75,0xF0,0x20,0xA4,0xFF,0xEB,0x25,0xE0,0x24,0x78,0xF5,0x82,0xE4,0x34, +0x0E,0xF5,0x83,0xE5,0xF0,0xF0,0xA3,0xEF,0xF0,0x80,0x22,0xEB,0x25,0xE0,0x24,0x28, +0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0xEB,0x25,0xE0,0x24, +0x78,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0xEB,0x25,0xE0, +0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xC3,0x95,0x0A, +0xE5,0x09,0x64,0x80,0xF8,0xEE,0x64,0x80,0x98,0x40,0x03,0x02,0x0B,0xCA,0xEB,0x25, +0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0x24,0xF6, +0xFF,0xEE,0x34,0xFF,0xFE,0xEB,0x25,0xE0,0x24,0x8C,0xF5,0x82,0xE4,0x34,0x0E,0xF5, +0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0xEB,0x25,0xE0,0x24,0x8C,0xF5,0x82,0xE4,0x34,0x0E, +0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0xAC,0x09,0xAD,0x0A,0x12,0x17,0x3F,0xE5,0x0A, +0x24,0xF6,0xFD,0xE5,0x09,0x34,0xFF,0xFC,0x12,0x17,0x51,0xEB,0x25,0xE0,0x24,0x8C, +0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0xEB,0x25,0xE0,0x24, +0x8C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xC3,0xEE,0x64,0x80, +0x94,0x80,0x40,0x03,0x02,0x0D,0x05,0xEB,0x25,0xE0,0x24,0x8C,0xF5,0x82,0xE4,0x34, +0x0E,0xF5,0x83,0xE4,0xF0,0xA3,0xF0,0x02,0x0D,0x05,0x90,0xF0,0x38,0xE0,0x75,0xF0, +0x20,0xA4,0xFF,0x24,0xF6,0xFF,0xE5,0xF0,0x34,0xFF,0xCF,0xC3,0x95,0x0A,0xCF,0x95, +0x09,0xFE,0xEB,0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFC, +0xA3,0xE0,0xD3,0x9F,0xEE,0x64,0x80,0xF8,0xEC,0x64,0x80,0x98,0x50,0x03,0x02,0x0C, +0xE3,0x90,0xF0,0x38,0xE0,0x75,0xF0,0x20,0xA4,0xFF,0x24,0xF6,0xFF,0xE5,0xF0,0x34, +0xFF,0xCF,0xC3,0x95,0x0A,0xCF,0x95,0x09,0xFE,0xEB,0x25,0xE0,0x24,0x3C,0xF5,0x82, +0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFC,0xA3,0xE0,0xC3,0x9F,0xFF,0xEC,0x9E,0xFE,0xEB, +0x25,0xE0,0x24,0x8C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0, +0xEB,0x25,0xE0,0x24,0x8C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0, +0xFF,0xAC,0x09,0xAD,0x0A,0x12,0x17,0x3F,0xE5,0x0A,0x24,0xF6,0xFD,0xE5,0x09,0x34, +0xFF,0xFC,0x12,0x17,0x51,0xEB,0x25,0xE0,0x24,0x8C,0xF5,0x82,0xE4,0x34,0x0E,0xF5, +0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0xF0,0x38,0xE0,0x75,0xF0,0x20,0xA4,0xFF,0x24, +0xF6,0xFF,0xE5,0xF0,0x34,0xFF,0xCF,0xC3,0x95,0x0A,0xCF,0x95,0x09,0xFE,0xEB,0x25, +0xE0,0x24,0x8C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0x8F,0xF0,0x12,0x17,0x87, +0x90,0xF0,0x38,0xE0,0x75,0xF0,0x20,0xA4,0xFF,0xEB,0x25,0xE0,0x24,0x8C,0xF5,0x82, +0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFC,0xA3,0xE0,0xD3,0x9F,0xE5,0xF0,0x64,0x80,0xF8, +0xEC,0x64,0x80,0x98,0x40,0x3F,0x90,0xF0,0x38,0xE0,0x75,0xF0,0x20,0xA4,0xFF,0xEB, +0x25,0xE0,0x24,0x8C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE5,0xF0,0xF0,0xA3,0xEF, +0xF0,0x80,0x22,0xEB,0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0, +0xFE,0xA3,0xE0,0xFF,0xEB,0x25,0xE0,0x24,0x8C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83, +0xEE,0xF0,0xA3,0xEF,0xF0,0x0B,0xEB,0x64,0x0A,0x60,0x03,0x02,0x09,0x2B,0xE4,0xFB, +0xEB,0x25,0xE0,0x24,0x8C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xF5,0x0B,0xA3, +0xE0,0xF5,0x0C,0xEB,0x25,0xE0,0x24,0x78,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0, +0xFE,0xA3,0xE0,0xFF,0xEB,0x25,0xE0,0x24,0x8C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83, +0xEE,0xF0,0xA3,0xEF,0xF0,0xEB,0x25,0xE0,0x24,0x78,0xF5,0x82,0xE4,0x34,0x0E,0xF5, +0x83,0xE5,0x0B,0xF0,0xA3,0xE5,0x0C,0xF0,0x0B,0xBB,0x0A,0xB4,0x22,0xE4,0xF5,0x0A, +0x30,0x0F,0x03,0x02,0x0E,0x96,0xF5,0x09,0x90,0x09,0x00,0xE0,0x75,0xF0,0x02,0xA4, +0xFF,0xC3,0xE5,0x09,0x9F,0xE5,0xF0,0x64,0x80,0xF8,0x74,0x80,0x98,0x40,0x03,0x02, +0x10,0x7E,0x30,0xD9,0x1E,0x74,0xE4,0x25,0x09,0xF5,0x82,0xE4,0x34,0x07,0xF5,0x83, +0xE0,0xF5,0xCB,0x74,0xE5,0x25,0x09,0xF5,0x82,0xE4,0x34,0x07,0xF5,0x83,0xE0,0xF5, +0xCC,0x80,0x1C,0x74,0x08,0x25,0x09,0xF5,0x82,0xE4,0x34,0x07,0xF5,0x83,0xE0,0xF5, +0xCB,0x74,0x09,0x25,0x09,0xF5,0x82,0xE4,0x34,0x07,0xF5,0x83,0xE0,0xF5,0xCC,0xD2, +0xDA,0x30,0xDA,0x05,0x75,0x9E,0x55,0x80,0xF8,0xAF,0xBD,0xAD,0xB7,0xED,0x2F,0xFF, +0xE4,0x33,0xFE,0xAD,0xC2,0x7C,0x00,0xEF,0x2D,0xF5,0x0C,0xEC,0x3E,0xF5,0x0B,0xAF, +0xCA,0xAD,0xB9,0xED,0x2F,0xFF,0xEC,0x33,0xFE,0xAD,0xC3,0xEF,0x2D,0xF5,0x0E,0xEC, +0x3E,0xF5,0x0D,0xAF,0xBE,0xAD,0xBA,0xED,0x2F,0xFF,0xEC,0x33,0xFE,0xAD,0xC4,0xEF, +0x2D,0xF5,0x10,0xEC,0x3E,0xF5,0x0F,0xF5,0x16,0x85,0x10,0x17,0xAB,0x0E,0xAA,0x0D, +0xAD,0x0C,0xAC,0x0B,0xAF,0xCB,0x12,0x17,0xFE,0xE5,0x0A,0x25,0xE0,0x24,0x00,0xF5, +0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0xAF,0xB9,0xAD,0xB7,0xED, +0x2F,0xFF,0xE4,0x33,0xFE,0xAD,0xBA,0x7C,0x00,0xEF,0x2D,0xF5,0x0C,0xEC,0x3E,0xF5, +0x0B,0xAF,0xCA,0xAD,0xBD,0xED,0x2F,0xFF,0xEC,0x33,0xFE,0xAD,0xBE,0xEF,0x2D,0xF5, +0x0E,0xEC,0x3E,0xF5,0x0D,0xAF,0xC3,0xAD,0xC2,0xED,0x2F,0xFF,0xEC,0x33,0xFE,0xAD, +0xC4,0xEF,0x2D,0xF5,0x10,0xEC,0x3E,0xF5,0x0F,0xF5,0x16,0x85,0x10,0x17,0xAB,0x0E, +0xAA,0x0D,0xAD,0x0C,0xAC,0x0B,0xAF,0xCC,0x12,0x17,0xFE,0xE5,0x0A,0x25,0xE0,0x24, +0x14,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0x05,0x0A,0x05, +0x09,0x05,0x09,0x02,0x0D,0x68,0x90,0x09,0x00,0x74,0x01,0xF0,0x90,0x0B,0x20,0xE0, +0xF5,0xCB,0x90,0x0B,0x21,0xE0,0xF5,0xCC,0xD2,0xDA,0x30,0xDA,0x05,0x75,0x9E,0x55, +0x80,0xF8,0xAF,0xBD,0xAD,0xB7,0xED,0x2F,0xFF,0xE4,0x33,0xFE,0xAD,0xC2,0x7C,0x00, +0xEF,0x2D,0xF5,0x0C,0xEC,0x3E,0xF5,0x0B,0xAF,0xCA,0xAD,0xB9,0xED,0x2F,0xFF,0xEC, +0x33,0xFE,0xAD,0xC3,0xEF,0x2D,0xF5,0x0E,0xEC,0x3E,0xF5,0x0D,0xAF,0xBE,0xAD,0xBA, +0xED,0x2F,0xFF,0xEC,0x33,0xFE,0xAD,0xC4,0xEF,0x2D,0xF5,0x10,0xEC,0x3E,0xF5,0x0F, +0xF5,0x16,0x85,0x10,0x17,0xAB,0x0E,0xAA,0x0D,0xAD,0x0C,0xAC,0x0B,0xAF,0xCB,0x12, +0x17,0xFE,0x90,0x0E,0x00,0xEE,0xF0,0xA3,0xEF,0xF0,0x20,0x03,0x11,0x90,0x0E,0x00, +0xE0,0xFF,0xA3,0xE0,0x90,0x0B,0x22,0xCF,0xF0,0xA3,0xEF,0xF0,0x80,0x7A,0x90,0x0B, +0x22,0xE0,0xFE,0xA3,0xE0,0xFF,0xC3,0x90,0x0E,0x01,0xE0,0x9F,0xEE,0x64,0x80,0xF8, +0x90,0x0E,0x00,0xE0,0x64,0x80,0x98,0x40,0x32,0x90,0x0B,0x23,0xE0,0x24,0x32,0xFF, +0x90,0x0B,0x22,0xE0,0x34,0x00,0xFE,0xC3,0x90,0x0E,0x01,0xE0,0x9F,0xEE,0x64,0x80, +0xF8,0x90,0x0E,0x00,0xE0,0x64,0x80,0x98,0x50,0x3E,0x90,0x0B,0x22,0xE0,0xFF,0xA3, +0xE0,0x90,0x0E,0x00,0xCF,0xF0,0xA3,0xEF,0xF0,0x80,0x2D,0x90,0x0E,0x01,0xE0,0x24, +0x32,0xFF,0x90,0x0E,0x00,0xE0,0x34,0x00,0xFE,0xC3,0x90,0x0B,0x23,0xE0,0x9F,0xEE, +0x64,0x80,0xF8,0x90,0x0B,0x22,0xE0,0x64,0x80,0x98,0x50,0x0C,0xE0,0xFF,0xA3,0xE0, +0x90,0x0E,0x00,0xCF,0xF0,0xA3,0xEF,0xF0,0xAF,0xB9,0xAD,0xB7,0xED,0x2F,0xFF,0xE4, +0x33,0xFE,0xAD,0xBA,0x7C,0x00,0xEF,0x2D,0xF5,0x0C,0xEC,0x3E,0xF5,0x0B,0xAF,0xCA, +0xAD,0xBD,0xED,0x2F,0xFF,0xEC,0x33,0xFE,0xAD,0xBE,0xEF,0x2D,0xF5,0x0E,0xEC,0x3E, +0xF5,0x0D,0xAF,0xC3,0xAD,0xC2,0xED,0x2F,0xFF,0xEC,0x33,0xFE,0xAD,0xC4,0xEF,0x2D, +0xF5,0x10,0xEC,0x3E,0xF5,0x0F,0xF5,0x16,0x85,0x10,0x17,0xAB,0x0E,0xAA,0x0D,0xAD, +0x0C,0xAC,0x0B,0xAF,0xCC,0x12,0x17,0xFE,0x90,0x0E,0x14,0xEE,0xF0,0xA3,0xEF,0xF0, +0x20,0x03,0x12,0x90,0x0E,0x14,0xE0,0xFF,0xA3,0xE0,0x90,0x0B,0x24,0xCF,0xF0,0xA3, +0xEF,0xF0,0xD2,0x03,0x22,0x90,0x0B,0x24,0xE0,0xFE,0xA3,0xE0,0xFF,0xC3,0x90,0x0E, +0x15,0xE0,0x9F,0xEE,0x64,0x80,0xF8,0x90,0x0E,0x14,0xE0,0x64,0x80,0x98,0x40,0x31, +0x90,0x0B,0x25,0xE0,0x24,0x32,0xFF,0x90,0x0B,0x24,0xE0,0x34,0x00,0xFE,0xC3,0x90, +0x0E,0x15,0xE0,0x9F,0xEE,0x64,0x80,0xF8,0x90,0x0E,0x14,0xE0,0x64,0x80,0x98,0x50, +0x3D,0x90,0x0B,0x24,0xE0,0xFF,0xA3,0xE0,0x90,0x0E,0x14,0xCF,0xF0,0xA3,0xEF,0xF0, +0x22,0x90,0x0E,0x15,0xE0,0x24,0x32,0xFF,0x90,0x0E,0x14,0xE0,0x34,0x00,0xFE,0xC3, +0x90,0x0B,0x25,0xE0,0x9F,0xEE,0x64,0x80,0xF8,0x90,0x0B,0x24,0xE0,0x64,0x80,0x98, +0x50,0x0C,0xE0,0xFF,0xA3,0xE0,0x90,0x0E,0x14,0xCF,0xF0,0xA3,0xEF,0xF0,0x22,0x90, +0xF0,0x48,0x74,0x16,0xF0,0xA3,0x74,0x05,0xF0,0xA3,0x74,0x10,0xF0,0xA3,0xF0,0xA3, +0x74,0x01,0xF0,0xE4,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0xE0,0x24,0x01,0xFF,0xE4,0x33, +0xFE,0x90,0xF0,0x4A,0xE0,0xFD,0x24,0x01,0xFD,0xE4,0x33,0xCD,0x2F,0xFF,0xED,0x3E, +0xFE,0xA3,0xE0,0xFD,0x24,0x01,0xFD,0xE4,0x33,0xCD,0x2F,0xFF,0xED,0x3E,0xFE,0x90, +0xF0,0x4F,0xE0,0xFD,0x24,0x01,0xFD,0xE4,0x33,0xCD,0x2F,0xCD,0x3E,0xFC,0x90,0xF0, +0x48,0xE0,0x24,0x01,0xFF,0xE4,0x33,0xFE,0x12,0x17,0x3F,0x90,0xF0,0x4F,0xE0,0xFD, +0x90,0xF0,0x49,0xE0,0x2D,0xFD,0xE4,0x33,0xCD,0x2F,0xFB,0xED,0x3E,0xFA,0x90,0xF0, +0x4D,0xE0,0xFF,0x7E,0x00,0x7C,0x00,0x7D,0x0A,0x12,0x17,0x3F,0xEF,0x2B,0xFF,0xEE, +0x3A,0xCF,0x24,0x20,0xCF,0x34,0x00,0xAD,0x07,0xFC,0x13,0x13,0x54,0x3F,0xFB,0x90, +0xF0,0x66,0xF0,0x7E,0x00,0xEF,0x78,0x02,0xCE,0xC3,0x13,0xCE,0x13,0xD8,0xF9,0x14, +0xFF,0x90,0xF0,0x67,0xF0,0xA3,0xEB,0xF0,0xA3,0xEF,0xF0,0x90,0xF0,0x60,0x74,0xD1, +0xF0,0xE4,0xF5,0x80,0xF5,0x90,0xF5,0xA0,0xF5,0xB0,0x90,0xF0,0x01,0x74,0x20,0xF0, +0xA3,0x04,0xF0,0xA3,0x74,0x40,0xF0,0xA3,0x04,0xF0,0xA3,0x74,0x60,0xF0,0xA3,0x04, +0xF0,0xA3,0x74,0x80,0xF0,0xA3,0x04,0xF0,0xA3,0x74,0xA0,0xF0,0xA3,0x04,0xF0,0xA3, +0x74,0xC0,0xF0,0xA3,0x74,0xE0,0xF0,0xA3,0x04,0xF0,0xA3,0x04,0xF0,0xA3,0x04,0xF0, +0xA3,0x04,0xF0,0xA3,0x04,0xF0,0xA3,0x04,0xF0,0xA3,0x04,0xF0,0xA3,0x04,0xF0,0xA3, +0x04,0xF0,0xA3,0x04,0xF0,0xA3,0x04,0xF0,0xA3,0x04,0xF0,0xA3,0x04,0xF0,0xA3,0x04, +0xF0,0xA3,0x04,0xF0,0xA3,0x04,0xF0,0xA3,0x04,0xF0,0xA3,0x04,0xF0,0x90,0xF0,0x20, +0x74,0x90,0xF0,0xA3,0x74,0x02,0xF0,0xA3,0x74,0x0C,0xF0,0x90,0xF0,0x30,0x74,0x12, +0xF0,0xA3,0xF0,0xA3,0x74,0x14,0xF0,0x90,0xF0,0x34,0x74,0x40,0xF0,0xA3,0x74,0x0A, +0xF0,0xA3,0x74,0x01,0xF0,0xA3,0x74,0x0B,0xF0,0xA3,0x74,0x13,0xF0,0x90,0xF0,0x3A, +0x74,0xFF,0xF0,0xE4,0xA3,0xF0,0xA3,0xF0,0xA3,0x04,0xF0,0xA3,0x74,0x14,0xF0,0xA3, +0x74,0x02,0xF0,0xA3,0x74,0x20,0xF0,0xA3,0x74,0x03,0xF0,0xA3,0x14,0xF0,0xA3,0xF0, +0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,0x14,0xF0,0x90,0xF0,0x54,0x74,0x19,0xF0,0xA3, +0x74,0x7F,0xF0,0xD2,0xAD,0x90,0xF0,0x1F,0x74,0x01,0xF0,0x22,0xE4,0xF5,0x2B,0xFB, +0x74,0x45,0x2B,0xF8,0xE6,0x70,0x03,0x02,0x13,0x3A,0xEB,0x25,0xE0,0x24,0x78,0xF5, +0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0x7C,0x00,0x7D,0x19,0x12, +0x17,0x3F,0x7D,0x13,0x12,0x17,0x51,0xEB,0x25,0xE0,0x24,0x78,0xF5,0x82,0xE4,0x34, +0x0E,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0xEB,0x25,0xE0,0x24,0x8C,0xF5,0x82,0xE4, +0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0x7C,0x00,0x7D,0x0F,0x12,0x17,0x3F, +0x7D,0x0B,0x12,0x17,0x51,0xEB,0x25,0xE0,0x24,0x8C,0xF5,0x82,0xE4,0x34,0x0E,0xF5, +0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0xEB,0x04,0xFF,0xC4,0x54,0xF0,0xFF,0x74,0x45,0x2B, +0xF8,0xE6,0x4F,0xFF,0xE5,0x2B,0x25,0xE0,0x25,0xE0,0x24,0x00,0xF5,0x82,0xE4,0x34, +0x0F,0xF5,0x83,0xEF,0xF0,0xEB,0x25,0xE0,0x24,0x78,0xF5,0x82,0xE4,0x34,0x0E,0xF5, +0x83,0xE0,0xFE,0xA3,0xE0,0x78,0x04,0xCE,0xA2,0xE7,0x13,0xCE,0x13,0xD8,0xF8,0xFF, +0xE5,0x2B,0x25,0xE0,0x25,0xE0,0x24,0x01,0xF5,0x82,0xE4,0x34,0x0F,0xF5,0x83,0xEF, +0xF0,0xEB,0x25,0xE0,0x24,0x8C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFE,0xA3, +0xE0,0x78,0x04,0xCE,0xA2,0xE7,0x13,0xCE,0x13,0xD8,0xF8,0xFF,0xE5,0x2B,0x25,0xE0, +0x25,0xE0,0x24,0x02,0xF5,0x82,0xE4,0x34,0x0F,0xF5,0x83,0xEF,0xF0,0xEB,0x25,0xE0, +0x24,0x78,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xA3,0xE0,0xC4,0xF8,0x54,0x0F,0xC8, +0x68,0xFF,0x05,0x82,0xD5,0x82,0x02,0x15,0x83,0x15,0x82,0xE0,0xC4,0x54,0xF0,0x48, +0xEF,0x54,0xF0,0xFF,0xEB,0x25,0xE0,0x24,0x8C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83, +0xE0,0xA3,0xE0,0x54,0x0F,0x4F,0xFF,0xE5,0x2B,0x25,0xE0,0x25,0xE0,0x24,0x03,0xF5, +0x82,0xE4,0x34,0x0F,0xF5,0x83,0xEF,0xF0,0x05,0x2B,0x0B,0xEB,0x64,0x0A,0x60,0x03, +0x02,0x12,0x10,0xAB,0x2B,0xEB,0xC3,0x94,0x0A,0x50,0x47,0xEB,0x25,0xE0,0x25,0xE0, +0x24,0x00,0xF5,0x82,0xE4,0x34,0x0F,0xF5,0x83,0x74,0xFF,0xF0,0xEB,0x25,0xE0,0x25, +0xE0,0x24,0x01,0xF5,0x82,0xE4,0x34,0x0F,0xF5,0x83,0x74,0xFF,0xF0,0xEB,0x25,0xE0, +0x25,0xE0,0x24,0x02,0xF5,0x82,0xE4,0x34,0x0F,0xF5,0x83,0x74,0xFF,0xF0,0xEB,0x25, +0xE0,0x25,0xE0,0x24,0x03,0xF5,0x82,0xE4,0x34,0x0F,0xF5,0x83,0x74,0xFF,0xF0,0x0B, +0x80,0xB3,0x22,0xC2,0x13,0xE4,0xFF,0x74,0x45,0x2F,0xF8,0xE6,0x60,0x53,0x20,0x13, +0x2A,0xEF,0x25,0xE0,0x24,0x28,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xF5,0x4F, +0xA3,0xE0,0xF5,0x50,0xEF,0x25,0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83, +0xE0,0xF5,0x51,0xA3,0xE0,0xF5,0x52,0xD2,0x13,0x80,0x26,0xEF,0x25,0xE0,0x24,0x28, +0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xF5,0x53,0xA3,0xE0,0xF5,0x54,0xEF,0x25, +0xE0,0x24,0x3C,0xF5,0x82,0xE4,0x34,0x0E,0xF5,0x83,0xE0,0xFC,0xA3,0xE0,0xFD,0x80, +0x04,0x0F,0xBF,0x05,0xA2,0xC3,0xE5,0x50,0x95,0x54,0xE5,0x53,0x64,0x80,0xF8,0xE5, +0x4F,0x64,0x80,0x98,0x40,0x0E,0xE5,0x50,0x95,0x54,0xF5,0x56,0xE5,0x4F,0x95,0x53, +0xF5,0x55,0x80,0x0D,0xC3,0xE5,0x54,0x95,0x50,0xF5,0x56,0xE5,0x53,0x95,0x4F,0xF5, +0x55,0xC3,0xE5,0x52,0x9D,0xEC,0x64,0x80,0xF8,0xE5,0x51,0x64,0x80,0x98,0x40,0x0C, +0xE5,0x52,0x9D,0xF5,0x58,0xE5,0x51,0x9C,0xF5,0x57,0x80,0x0B,0xC3,0xED,0x95,0x52, +0xF5,0x58,0xEC,0x95,0x51,0xF5,0x57,0xE5,0x56,0x25,0x58,0xFF,0xE5,0x55,0x35,0x57, +0xFE,0x20,0x07,0x05,0xD2,0x07,0xE4,0xF5,0x40,0xE5,0x40,0x14,0x60,0x1A,0x14,0x60, +0x58,0x14,0x60,0x75,0x24,0x03,0x60,0x03,0x02,0x14,0xF9,0x8E,0x29,0x8F,0x2A,0x75, +0x40,0x01,0xE4,0xF5,0x41,0x02,0x14,0xFE,0xEF,0x24,0x0A,0xFB,0xE4,0x3E,0xFA,0xD3, +0xE5,0x2A,0x9B,0xEA,0x64,0x80,0xF8,0xE5,0x29,0x64,0x80,0x98,0x40,0x09,0x8E,0x29, +0x8F,0x2A,0x75,0x40,0x02,0x80,0x1D,0xE5,0x2A,0x24,0x0A,0xFB,0xE4,0x35,0x29,0xFA, +0xC3,0xEB,0x9F,0xEE,0x64,0x80,0xF8,0xEA,0x64,0x80,0x98,0x50,0x07,0x8E,0x29,0x8F, +0x2A,0x75,0x40,0x03,0xE4,0xF5,0x41,0x80,0x45,0xD3,0xE5,0x2A,0x9F,0xEE,0x64,0x80, +0xF8,0xE5,0x29,0x64,0x80,0x98,0x40,0x05,0x75,0x41,0x01,0x80,0x03,0xE4,0xF5,0x41, +0x8E,0x29,0x8F,0x2A,0xE4,0xF5,0x40,0x80,0x25,0xC3,0xE5,0x2A,0x9F,0xEE,0x64,0x80, +0xF8,0xE5,0x29,0x64,0x80,0x98,0x50,0x05,0x75,0x41,0x02,0x80,0x03,0xE4,0xF5,0x41, +0x8E,0x29,0x8F,0x2A,0xE4,0xF5,0x40,0x80,0x05,0xE4,0xF5,0x41,0xF5,0x40,0xAF,0x41, +0x22,0xC2,0x11,0xC2,0x12,0xE4,0xFB,0x7B,0x0B,0x90,0x0C,0xC8,0xE4,0xF0,0xA3,0xDB, +0xFC,0xE4,0xFB,0x7B,0x13,0x90,0x0C,0xD3,0xE4,0xF0,0xA3,0xDB,0xFC,0xE4,0x90,0x0B, +0x20,0xF0,0x90,0x0B,0x21,0xF0,0xFE,0xFB,0xE4,0xFD,0x30,0xD9,0x36,0x90,0xF0,0x37, +0xE0,0xFC,0xED,0x8C,0xF0,0xA4,0x2B,0x24,0xA3,0xF5,0x82,0xE4,0x34,0x02,0xF5,0x83, +0xE0,0xD3,0x94,0x32,0x40,0x51,0x0E,0x74,0xC8,0x2B,0xF5,0x82,0xE4,0x34,0x0C,0xF5, +0x83,0xE0,0x04,0xF0,0x74,0xD3,0x2D,0xF5,0x82,0xE4,0x34,0x0C,0xF5,0x83,0xE0,0x04, +0xF0,0x80,0x34,0x90,0xF0,0x37,0xE0,0xFC,0xED,0x8C,0xF0,0xA4,0x2B,0x24,0xC2,0xF5, +0x82,0xE4,0x34,0x01,0xF5,0x83,0xE0,0xD3,0x94,0x32,0x40,0x1B,0x0E,0x74,0xC8,0x2B, +0xF5,0x82,0xE4,0x34,0x0C,0xF5,0x83,0xE0,0x04,0xF0,0x74,0xD3,0x2D,0xF5,0x82,0xE4, +0x34,0x0C,0xF5,0x83,0xE0,0x04,0xF0,0x0D,0xED,0x64,0x13,0x70,0x8D,0x0B,0xEB,0x64, +0x0B,0x70,0x85,0x75,0x9E,0x55,0xE4,0xFB,0xEB,0xD3,0x94,0x09,0x50,0x2B,0x74,0xC8, +0x2B,0xF5,0x82,0xE4,0x34,0x0C,0xF5,0x83,0xE0,0xD3,0x94,0x01,0x40,0x1B,0x74,0xC9, +0x2B,0xF5,0x82,0xE4,0x34,0x0C,0xF5,0x83,0xE0,0xD3,0x94,0x01,0x40,0x0B,0x20,0x11, +0x08,0xD2,0x11,0xEB,0x04,0x90,0x0B,0x20,0xF0,0x0B,0xBB,0x0B,0xCB,0x75,0x9E,0x55, +0xE4,0xFB,0xEB,0xD3,0x94,0x11,0x50,0x2B,0x74,0xD3,0x2B,0xF5,0x82,0xE4,0x34,0x0C, +0xF5,0x83,0xE0,0xD3,0x94,0x01,0x40,0x1B,0x74,0xD4,0x2B,0xF5,0x82,0xE4,0x34,0x0C, +0xF5,0x83,0xE0,0xD3,0x94,0x01,0x40,0x0B,0x20,0x12,0x08,0xD2,0x12,0xEB,0x04,0x90, +0x0B,0x21,0xF0,0x0B,0xBB,0x13,0xCB,0x30,0x11,0x05,0x30,0x12,0x02,0xD3,0x22,0xC3, +0x22,0x75,0x81,0x6C,0x12,0x00,0xA0,0x12,0x3F,0xF0,0x12,0x1C,0x35,0xD2,0xAF,0x90, +0x0F,0x2B,0xE0,0x64,0x01,0x60,0x23,0x74,0x01,0xF0,0xE4,0x90,0xF0,0x63,0xF0,0x90, +0xF0,0x60,0x74,0xD0,0xF0,0x7F,0xFA,0x7E,0x00,0x12,0x00,0x8E,0x75,0x9E,0x55,0x75, +0xC8,0xE0,0x75,0x87,0x02,0x75,0x97,0x55,0x00,0x00,0x75,0x9E,0x55,0x30,0x08,0x0C, +0x7F,0x01,0x7E,0x00,0x12,0x00,0x8E,0xC2,0x08,0x02,0x17,0x00,0x20,0x00,0x03,0x02, +0x17,0x00,0xC2,0x00,0x12,0x00,0x3B,0x30,0x04,0x06,0x12,0x1C,0x0F,0x02,0x17,0x00, +0x30,0x0B,0x05,0x12,0x18,0xA8,0x80,0x78,0x12,0x1B,0x7F,0x30,0x0E,0x09,0xC2,0x0E, +0xC2,0x0F,0x12,0x0D,0x5D,0x80,0x11,0xC2,0x0F,0xC2,0x03,0xE4,0x90,0x0B,0x22,0xF0, +0xA3,0xF0,0x90,0x0B,0x24,0xF0,0xA3,0xF0,0x12,0x00,0xAF,0x12,0x09,0x1D,0x12,0x12, +0x0C,0xE5,0x2B,0xD3,0x94,0x00,0x40,0x48,0xA2,0x0D,0x82,0x0C,0x50,0x42,0xD2,0x0A, +0x75,0x8A,0x0F,0xE4,0xF5,0x8B,0xC2,0xC4,0x7F,0x19,0x7E,0x00,0x12,0x00,0x8E,0xD2, +0xC4,0x75,0x27,0x01,0x75,0x28,0xF4,0x7F,0x19,0x7E,0x00,0x12,0x00,0x8E,0xE5,0x28, +0x15,0x28,0x70,0x02,0x15,0x27,0x75,0x9E,0x55,0xE5,0x2B,0xD3,0x94,0x00,0x40,0x0D, +0xD3,0xE5,0x28,0x94,0x00,0xE5,0x27,0x64,0x80,0x94,0x80,0x50,0xDA,0x20,0x0A,0xC6, +0x30,0x9F,0x03,0x02,0x16,0x2F,0x30,0x05,0x2A,0xC2,0x05,0xC2,0x04,0x90,0x0F,0xFF, +0xE0,0xB4,0xBF,0x07,0xD2,0x04,0xC2,0x0B,0x02,0x16,0x2F,0x90,0x0F,0xFF,0xE0,0x64, +0xAF,0x60,0x03,0x02,0x16,0x2F,0x90,0x0F,0xFE,0xE0,0xF5,0x44,0xD2,0x0B,0xC2,0x04, +0x02,0x16,0x2F,0x20,0x06,0x03,0x02,0x16,0x2F,0xC2,0x06,0x02,0x16,0x2F,0x22,0xEF, +0x8D,0xF0,0xA4,0xA8,0xF0,0xCF,0x8C,0xF0,0xA4,0x28,0xCE,0x8D,0xF0,0xA4,0x2E,0xFE, +0x22,0xC2,0xD5,0xEC,0x30,0xE7,0x09,0xB2,0xD5,0xE4,0xC3,0x9D,0xFD,0xE4,0x9C,0xFC, +0xEE,0x30,0xE7,0x15,0xB2,0xD5,0xE4,0xC3,0x9F,0xFF,0xE4,0x9E,0xFE,0x12,0x17,0xA9, +0xC3,0xE4,0x9D,0xFD,0xE4,0x9C,0xFC,0x80,0x03,0x12,0x17,0xA9,0x30,0xD5,0x07,0xC3, +0xE4,0x9F,0xFF,0xE4,0x9E,0xFE,0x22,0xC5,0xF0,0xF8,0xA3,0xE0,0x28,0xF0,0xC5,0xF0, +0xF8,0xE5,0x82,0x15,0x82,0x70,0x02,0x15,0x83,0xE0,0x38,0xF0,0x22,0xA4,0x25,0x82, +0xF5,0x82,0xE5,0xF0,0x35,0x83,0xF5,0x83,0x22,0xBC,0x00,0x0B,0xBE,0x00,0x29,0xEF, +0x8D,0xF0,0x84,0xFF,0xAD,0xF0,0x22,0xE4,0xCC,0xF8,0x75,0xF0,0x08,0xEF,0x2F,0xFF, +0xEE,0x33,0xFE,0xEC,0x33,0xFC,0xEE,0x9D,0xEC,0x98,0x40,0x05,0xFC,0xEE,0x9D,0xFE, +0x0F,0xD5,0xF0,0xE9,0xE4,0xCE,0xFD,0x22,0xED,0xF8,0xF5,0xF0,0xEE,0x84,0x20,0xD2, +0x1C,0xFE,0xAD,0xF0,0x75,0xF0,0x08,0xEF,0x2F,0xFF,0xED,0x33,0xFD,0x40,0x07,0x98, +0x50,0x06,0xD5,0xF0,0xF2,0x22,0xC3,0x98,0xFD,0x0F,0xD5,0xF0,0xEA,0x22,0xA9,0x07, +0x74,0x06,0x2D,0xFD,0xE4,0x3C,0xFC,0xD3,0xEB,0x94,0x0C,0xEA,0x64,0x80,0x94,0x80, +0x40,0x08,0x74,0xF4,0x2B,0xFB,0x74,0xFF,0x3A,0xFA,0x74,0x06,0x25,0x17,0xF5,0x17, +0xE4,0x35,0x16,0xF5,0x16,0xE4,0xF5,0xAE,0x75,0xAF,0x10,0xED,0xF5,0xAB,0xEC,0xFF, +0x33,0x95,0xE0,0x8F,0xAA,0xEB,0xFD,0xF5,0xAD,0xEA,0xFF,0x33,0x95,0xE0,0xAC,0x07, +0x8C,0xAC,0x75,0xA9,0x01,0xE5,0x17,0xF5,0xAB,0xE5,0x16,0xFF,0x33,0x95,0xE0,0x8F, +0xAA,0x8D,0xAD,0x8C,0xAC,0xE5,0xA9,0xB4,0x01,0x05,0x75,0x9E,0x55,0x80,0xF6,0x7D, +0x10,0x7C,0x00,0xAF,0xA6,0xEF,0xFE,0xAB,0xA7,0x7A,0x00,0xE4,0x2B,0xFB,0xEA,0x3E, +0xFA,0xE9,0x75,0xF0,0x20,0xA4,0xC3,0x9B,0xFF,0xE5,0xF0,0x9A,0xFE,0xEF,0x2D,0xFD, +0xEC,0x3E,0xFC,0x75,0xA9,0x01,0xE5,0xA9,0xB4,0x01,0x05,0x75,0x9E,0x55,0x80,0xF6, +0xAF,0xA6,0xEF,0xFE,0xAB,0xA7,0x7A,0x00,0xE4,0x2B,0xFF,0xEA,0x3E,0xFE,0xEF,0x2D, +0xFD,0xEE,0x3C,0xFC,0xFE,0xAF,0x05,0x22,0x20,0x01,0x03,0x02,0x19,0x4A,0x75,0x8A, +0x0A,0xE4,0xF5,0x8B,0x90,0x0A,0x00,0x74,0xF5,0xF0,0x75,0xF0,0x02,0xE5,0x44,0xA4, +0x24,0x00,0xF5,0x82,0xE5,0xF0,0x34,0x00,0xF5,0x83,0xE0,0x90,0x0A,0x01,0xF0,0x75, +0xF0,0x02,0xE5,0x44,0xA4,0x24,0x01,0xF5,0x82,0xE5,0xF0,0x34,0x00,0xF5,0x83,0xE0, +0x90,0x0A,0x02,0xF0,0x75,0xF0,0x02,0xE5,0x44,0xA4,0x24,0x84,0xF5,0x82,0xE5,0xF0, +0x34,0x03,0xF5,0x83,0xE0,0x90,0x0A,0x03,0xF0,0x75,0xF0,0x02,0xE5,0x44,0xA4,0x24, +0x85,0xF5,0x82,0xE5,0xF0,0x34,0x03,0xF5,0x83,0xE0,0x90,0x0A,0x04,0xF0,0xD2,0xD8, +0x30,0xD9,0x12,0x74,0xA3,0x25,0x44,0xF5,0x82,0xE4,0x34,0x02,0xF5,0x83,0xE0,0x90, +0x0A,0x05,0xF0,0x80,0x10,0x74,0xC2,0x25,0x44,0xF5,0x82,0xE4,0x34,0x01,0xF5,0x83, +0xE0,0x90,0x0A,0x05,0xF0,0xC2,0x01,0xC2,0xC4,0x7F,0x64,0x7E,0x00,0x12,0x00,0x8E, +0xD2,0xC4,0x90,0xF0,0x1F,0x74,0x01,0xF0,0xD2,0x02,0x22,0xE4,0xFD,0xFC,0xED,0x75, +0xF0,0x02,0xA4,0x85,0xF0,0x5B,0xF5,0x5C,0x24,0x00,0xF5,0x82,0x74,0x00,0x35,0x5B, +0xF5,0x83,0xE0,0xFE,0x74,0x01,0x25,0x5C,0xF5,0x82,0x74,0x00,0x35,0x5B,0xF5,0x83, +0xE0,0x7A,0x00,0x24,0x00,0xF5,0x5A,0xEA,0x3E,0xF5,0x59,0x74,0x84,0x25,0x5C,0xF5, +0x82,0x74,0x03,0x35,0x5B,0xF5,0x83,0xE0,0xFE,0x74,0x85,0x25,0x5C,0xF5,0x82,0x74, +0x03,0x35,0x5B,0xF5,0x83,0xE0,0x24,0x00,0xFF,0xEA,0x3E,0xFE,0xEF,0x24,0xF7,0xFB, +0xEE,0x34,0xFF,0xFA,0xC3,0xE5,0x5A,0x9B,0xE5,0x59,0x9A,0x50,0x12,0xEF,0x24,0xEC, +0xFF,0xEE,0x34,0xFF,0xFE,0xD3,0xE5,0x5A,0x9F,0xE5,0x59,0x9E,0x40,0x01,0x0C,0x0D, +0xED,0x64,0xD1,0x70,0x89,0xEC,0xD3,0x94,0x1E,0x40,0x02,0xD3,0x22,0xC3,0x22,0xC0, +0xE0,0xC0,0xF0,0xC0,0x83,0xC0,0x82,0xC0,0xD0,0x75,0xD0,0x00,0xC0,0x00,0xC0,0x01, +0xC0,0x02,0xC0,0x03,0xC0,0x04,0xC0,0x05,0xC0,0x06,0xC0,0x07,0x30,0x98,0x04,0xD2, +0x05,0xC2,0x98,0x30,0x99,0x3D,0xD2,0xC4,0xD2,0x06,0xC2,0x99,0xD2,0x01,0xC2,0x0A, +0x75,0x2B,0x00,0xE5,0x2B,0xD3,0x94,0x00,0x40,0x29,0xD2,0x0A,0x75,0x27,0x01,0x75, +0x28,0xF4,0x7F,0x28,0x7E,0x00,0x12,0x00,0x8E,0x75,0x8A,0x0F,0x74,0x04,0x25,0x8B, +0xF5,0x8B,0x90,0x0A,0x0A,0xE5,0x8B,0xF0,0xC2,0xC4,0x7F,0x19,0x7E,0x00,0x12,0x00, +0x8E,0xD2,0xC4,0xD0,0x07,0xD0,0x06,0xD0,0x05,0xD0,0x04,0xD0,0x03,0xD0,0x02,0xD0, +0x01,0xD0,0x00,0xD0,0xD0,0xD0,0x82,0xD0,0x83,0xD0,0xF0,0xD0,0xE0,0x32,0xE4,0xF5, +0x60,0x75,0x9E,0x55,0x30,0x09,0x73,0xC2,0x09,0xF5,0x5F,0xE5,0x5F,0x75,0xF0,0x02, +0xA4,0xFD,0xAC,0xF0,0x24,0x84,0xF5,0x82,0x74,0x03,0x3C,0xF5,0x83,0xE0,0xFE,0x74, +0x85,0x2D,0xF5,0x82,0x74,0x03,0x3C,0xF5,0x83,0xE0,0x7C,0x00,0x24,0x00,0xFF,0xEC, +0x3E,0xFE,0x75,0xF0,0x02,0xE5,0x5F,0xA4,0x24,0x26,0xF5,0x82,0xE5,0xF0,0x34,0x0B, +0xF5,0x83,0xE0,0xFC,0xA3,0xE0,0xC3,0x9F,0xFF,0xEC,0x9E,0xFE,0x12,0x1C,0x6D,0xD3, +0xEF,0x94,0x05,0xEE,0x64,0x80,0x94,0x80,0x40,0x02,0x05,0x60,0xE5,0x60,0xD3,0x94, +0x00,0x40,0x0E,0x90,0xF0,0x34,0x74,0x03,0xF0,0x90,0xF0,0x36,0xE0,0x44,0x01,0xF0, +0x22,0x05,0x5F,0xE5,0x5F,0xC3,0x94,0xD1,0x40,0x91,0x22,0xC2,0x00,0xC2,0x08,0xC2, +0x0E,0xC2,0x10,0xC2,0x05,0xC2,0x06,0xC2,0x04,0xC2,0x0B,0xD2,0x01,0xC2,0x02,0xE4, +0xF5,0x2B,0x90,0x09,0x00,0xF0,0xF5,0x45,0xF5,0x46,0xF5,0x47,0xF5,0x48,0xF5,0x49, +0xF5,0x4A,0xF5,0x4B,0xF5,0x4C,0xF5,0x4D,0xF5,0x4E,0xC2,0x07,0xF5,0x40,0xF5,0x41, +0x90,0x0F,0xFC,0x74,0x20,0xF0,0xC2,0x0F,0xC2,0x03,0xE4,0x90,0x0B,0x22,0xF0,0xA3, +0xF0,0x90,0x0B,0x24,0xF0,0xA3,0xF0,0x75,0x24,0x07,0x75,0x25,0xD0,0xF5,0x42,0xF5, +0x43,0x75,0x23,0xFF,0x90,0x0F,0x2B,0x04,0xF0,0xE4,0x90,0xF0,0x61,0xF0,0x75,0x8A, +0x0F,0xF5,0x8B,0x22,0x75,0x9E,0x55,0xE4,0xFD,0xED,0x75,0xF0,0x02,0xA4,0x85,0xF0, +0x5D,0xF5,0x5E,0x24,0x84,0xF5,0x82,0x74,0x03,0x35,0x5D,0xF5,0x83,0xE0,0xFE,0x74, +0x85,0x25,0x5E,0xF5,0x82,0x74,0x03,0x35,0x5D,0xF5,0x83,0xE0,0x7A,0x00,0x24,0x00, +0xFF,0xEA,0x3E,0xFE,0x75,0xF0,0x02,0xED,0xA4,0x24,0x26,0xF5,0x82,0xE5,0xF0,0x34, +0x0B,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,0xF0,0x0D,0xBD,0xD1,0xBD,0xD2,0x09,0x22,0x90, +0xF0,0x33,0xE0,0x90,0x09,0x00,0xF0,0xE0,0xD3,0x94,0x0A,0x40,0x03,0x74,0x0A,0xF0, +0x20,0xF8,0x1F,0xE5,0x25,0x45,0x24,0x70,0x19,0xC3,0xE5,0x43,0x94,0x9F,0xE5,0x42, +0x64,0x80,0x94,0x81,0x50,0x11,0x05,0x43,0xE5,0x43,0x70,0x02,0x05,0x42,0xB2,0xC5, +0x80,0x05,0xE4,0xF5,0x42,0xF5,0x43,0xD2,0xD8,0x90,0xF0,0x1F,0x74,0x01,0xF0,0x22, +0xE5,0xC9,0x54,0x02,0x60,0x06,0x78,0x7F,0xE4,0xF6,0xD8,0xFD,0xE5,0xC9,0x54,0x02, +0x60,0x11,0x90,0x00,0x00,0x7F,0x00,0x7E,0x10,0xE4,0xF0,0xA3,0x75,0x9E,0x55,0xDF, +0xF9,0xDE,0xF7,0x02,0x16,0x21,0x00,0x00,0xE4,0xF5,0x41,0x90,0x09,0x00,0xE0,0xB4, +0x01,0x08,0xC2,0x07,0xE4,0xF5,0x40,0xF5,0x41,0x22,0x90,0x09,0x00,0xE0,0xB4,0x02, +0x06,0x12,0x13,0x93,0x8F,0x41,0x22,0xC2,0x07,0xE4,0xF5,0x40,0xF5,0x41,0x22,0x90, +0x0F,0xFD,0x74,0xBB,0xF0,0x90,0x0A,0x01,0xE0,0x64,0xAA,0x60,0x05,0x75,0x9E,0x55, +0x80,0xF3,0xE4,0x90,0x0A,0x01,0xF0,0x90,0x0F,0xFD,0xF0,0xD2,0xD8,0x90,0xF0,0x1F, +0x04,0xF0,0xD2,0x02,0x22,0xE5,0xC9,0x20,0xE3,0x19,0xE5,0xC9,0x30,0xE0,0x08,0x90, +0xF0,0x60,0x74,0xD1,0xF0,0x80,0x0C,0x12,0x1A,0xCB,0x12,0x1C,0x82,0x12,0x10,0x7F, +0x12,0x1C,0x79,0xE4,0xF5,0xC9,0x22,0xC0,0xE0,0xC0,0x83,0xC0,0x82,0xD2,0x00,0x90, +0xF0,0x1F,0xE4,0xF0,0xC2,0xD8,0xD0,0x82,0xD0,0x83,0xD0,0xE0,0x32,0xEE,0x30,0xE7, +0x07,0xC3,0xE4,0x9F,0xFF,0xE4,0x9E,0xFE,0x22,0x75,0x91,0x01,0x75,0x89,0x01,0xD2, +0xAC,0x22,0x75,0x86,0x08,0x75,0x84,0x9C,0xC2,0xA9,0x22,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0x0F,0x2A,0x74,0x01,0xF0,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF9,0x40 +}; diff --git a/drivers/input/touchscreen/ct360_ts.c b/drivers/input/touchscreen/ct360_ts.c new file mode 100644 index 000000000000..f427ace09579 --- /dev/null +++ b/drivers/input/touchscreen/ct360_ts.c @@ -0,0 +1,719 @@ +/* + * drivers/input/touchscreen/gt801_ts.c + * + * Copyright (C) 2010 ROCKCHIP, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "ct360_calib.h" +#include "ct360_ch.h" + +#define CT360_DEBUG 0 +#define MYCT360_DEBUG 0 + +#if CT360_DEBUG + #define ct360printk(msg...) printk(msg); +#else + #define ct360printk(msg...) +#endif + +#if 0 + #define yj_printk(msg...) printk(msg); +#else + #define yj_printk(msg...) +#endif + +#if 0 + #define boot_printk(msg...) printk(msg); +#else + #define boot_printk(msg...) +#endif + + +#if MYCT360_DEBUG + #define myct360printk(msg...) printk(msg); +#else + #define myct360printk(msg...) +#endif + +static int touch_flag_up=0; +static int touch_flag_down = 0; +static int flag=0; +static int last_num_point=1; + +static int last_x[2]={0,0}; +static int last_y[2]={0,0}; + +#define ct360_TS_NAME "ct360_ts" +#define TOUCH_NUMBER 5 +#define TOUCH_REG_NUM 4 +#define IOMUX_NAME_SIZE 48 + +enum regadd { + ptxh = 0, ptxl = 1, ptyh = 2, ptyl = 3, ptpressure = 4, +}; +enum touchstate { + TOUCH_UP = 0, TOUCH_DOWN = 1, +}; + + + +const unsigned char GT801_RegData[]={ + 0x0F,0x02,0x04,0x28,0x02,0x14,0x14,0x10,0x28,0xFA,0x03,0x20,0x05,0x00,0x01, + 0x23,0x45,0x67,0x89,0xAB,0xCD,0xE1,0x00,0x00,0x35,0x2E,0x4D,0xC1,0x20,0x05, + 0x00,0x80,0x50,0x3C,0x1E,0xB4,0x00,0x33,0x2C,0x01,0xEC,0x00,0x32,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01 +}; + +/*tochscreen private data*/ +static int touch_state[TOUCH_NUMBER] = {TOUCH_UP,TOUCH_UP}; +struct ct360_ts_data *ct360; +#ifdef CONFIG_HAS_EARLYSUSPEND +static void ct360_ts_early_suspend(struct early_suspend *h); +static void ct360_ts_late_resume(struct early_suspend *h); +#endif + + +static int ct360_read_regs(struct i2c_client *client, u8 buf[], unsigned len) +{ + int ret; + ret = i2c_master_normal_recv(client, buf, len, 400*1000); + if(ret < 0) + printk("ct360_ts_work_func:i2c_transfer fail =%d\n",ret); + return ret; +} +/* set the ct360 registe,used i2c bus*/ +static int ct360_write_regs(struct i2c_client *client, u8 const buf[], unsigned short len) +{ + int ret; + ret = i2c_master_normal_send(client, buf, len, 100*1000); + if (ret < 0) { + printk("ct360_ts_work_func:i2c_transfer fail =%d\n",ret); + } + return ret; +} + +extern char Binary_Data[16384]; + +char CT360_CTP_BootLoader(struct ct360_ts_data *ts) +{ + char value = 0; + char I2C_Buf[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; + char i = 0; + unsigned int Flash_Address = 0; + char CheckSum; + + //Step 00 : initBootLoader + ts->client->addr = 0x7F; + I2C_Buf[0] = 0x00; + I2C_Buf[1] = 0xA5; + ct360_write_regs(ts->client,I2C_Buf,2); // Write a ¡°A5H¡± to CT360 + mdelay(15); + + // Read CT360 status + i2c_master_normal_send(ts->client,I2C_Buf,1,100*1000); + mdelay(1); + i2c_master_normal_recv(ts->client,&value,1,100*1000); + + boot_printk("%s......0...\n",__FUNCTION__); + // if return ¡°AAH¡± then going next step + if (value != 0xAA) + return 0; + boot_printk("%s......1...\n",__FUNCTION__); + //Step 0 : force CT360 generate check sum for host to compare data. + //VTL_Address = 0x00A4 + //Prepare get check sum from CT360 + I2C_Buf[0] = 0x00; + I2C_Buf[1] = 0x99; //Generate check sum command + I2C_Buf[2] = (char)(0x00A4 >> 8); //define a flash address for CT360 to generate check sum + I2C_Buf[3] = (char)(0x00A4 & 0xFF); // + I2C_Buf[4] = 0x08; //Define a data length for CT360 to generate check sum + ct360_write_regs(ts->client,I2C_Buf, 5); //Write Genertate check sum command to CT360 + mdelay(2); //Delay 1mS + + I2C_Buf[0] = 0x00; + ct360_write_regs(ts->client,I2C_Buf,1); + mdelay(1); + i2c_master_normal_recv(ts->client,I2C_Buf, 13,100*1000); // Read check sum and flash data from CT360 + + //Compare host check sum with CT360 check sum(I2C_Buf[5] I2C_Buf[9] ) + if ((I2C_Buf[5] != 'V') || (I2C_Buf[9] != 'T')) + return 0; + boot_printk("%s......2..\n",__FUNCTION__); + //Step 1 : initBootLoader + I2C_Buf[0] = 0x00; + I2C_Buf[1] = 0xA5; + ct360_write_regs(ts->client,I2C_Buf,2); // Write a ¡°A5H¡± to CT360 + mdelay(15); + + I2C_Buf[0] = 0x00; + ct360_write_regs(ts->client,I2C_Buf,1); // Write a ¡°A5H¡± to CT360 + mdelay(1); + i2c_master_normal_recv(ts->client,&value, 1,100*1000); + + + // if return ¡°AAH¡± then going next step + if (value != 0xAA) + return 0; + + boot_printk("%s......3...\n",__FUNCTION__); + //Step 2 : erase flash section 0~7 + for(i = 0; i<8; i++) + { + I2C_Buf[0] = 0x00; + I2C_Buf [1] = 0x33; //Erase command + I2C_Buf [2] = 0x00 + (i * 8); //Flash section address + ct360_write_regs(ts->client,I2C_Buf, 3); //Write ¡°33H¡± and ¡°Flash section¡± to CT360 + mdelay(80); //Delay 75mS + + I2C_Buf[0] = 0x00; + ct360_write_regs(ts->client,I2C_Buf,1); // Write a ¡°A5H¡± to CT360 + mdelay(1); + i2c_master_normal_recv(ts->client,&value, 1,100*1000); + + // if CT360 return ¡°AAH¡± then going next step + if (value != 0xAA) + return 0; //CT360 out of controlled + } + boot_printk("%s......4...\n",__FUNCTION__); + + for (Flash_Address=0; Flash_Address < 0x3fff; Flash_Address+=8) + { + //Step 3 : write binary data to CT360 + I2C_Buf[0] = 0x00; + I2C_Buf[1] = 0x55; //Flash write command + I2C_Buf[2] = (char)(Flash_Address >> 8); //Flash address [15:8] + I2C_Buf[3] = (char)(Flash_Address & 0xFF); //Flash address [7:0] + I2C_Buf[4] = 0x08; //How many prepare to write to CT360 + I2C_Buf[6] = Binary_Data[Flash_Address + 0]; //Binary data 1 + I2C_Buf[7] = Binary_Data[Flash_Address + 1]; //Binary data 2 + I2C_Buf[8] = Binary_Data[Flash_Address + 2]; //Binary data 3 + I2C_Buf[9] = Binary_Data[Flash_Address + 3]; //Binary data 4 + I2C_Buf[10] = Binary_Data[Flash_Address + 4]; //Binary data 5 + I2C_Buf[11] = Binary_Data[Flash_Address + 5]; //Binary data 6 + I2C_Buf[12] = Binary_Data[Flash_Address + 6]; //Binary data 7 + I2C_Buf[13] = Binary_Data[Flash_Address + 7]; //Binary data 8 + // Calculate a check sum by Host controller. + // Checksum = / (FLASH_ADRH+FLASH_ADRL+LENGTH+ + // Binary_Data1+Binary_Data2+Binary_Data3+Binary_Data4+ + // Binary_Data5+Binary_Data6+Binary_Data7+Binary_Data8) + 1 + CheckSum = ~(I2C_Buf[2] + I2C_Buf[3] + I2C_Buf[4] + I2C_Buf[6] + I2C_Buf[7] + + I2C_Buf[8] + I2C_Buf[9] + I2C_Buf[10] + I2C_Buf[11] + I2C_Buf[12] + + I2C_Buf[13]) + 1; + I2C_Buf[5] = CheckSum; //Load check sum + ct360_write_regs(ts->client,I2C_Buf, 14); //Host write I2C_Buf[0¡­12] to CT360. + mdelay(2); //Delay 2mS + + I2C_Buf[0] = 0x00; + ct360_write_regs(ts->client,I2C_Buf,1); // Write a ¡°A5H¡± to CT360 + mdelay(2); + i2c_master_normal_recv(ts->client,&value, 1,100*1000); + +// if return ¡°AAH¡± then going next step + if (value != 0xAA) + return 0; + + + //Step 4 : force CT360 generate check sum for host to compare data. + //Prepare get check sum from CT360 + I2C_Buf[0] = 0x00; + I2C_Buf[1] = 0x99; //Generate check sum command + I2C_Buf[2] = (char)(Flash_Address >> 8); //define a flash address for CT360 to generate check sum + I2C_Buf[3] = (char)(Flash_Address & 0xFF); // + I2C_Buf[4] = 0x08; //Define a data length for CT360 to generate check sum + ct360_write_regs(ts->client,I2C_Buf, 5); //Write Genertate check sum command to CT360 + mdelay(5); //Delay 1mS + I2C_Buf[0] = 0x00; + ct360_write_regs(ts->client,I2C_Buf,1); + mdelay(1); + i2c_master_normal_recv(ts->client,I2C_Buf, 13,100*1000); // Read check sum and flash dat //Compare host check sum with CT360 check sum(I2C_Buf[4]) + + if (I2C_Buf[4] != CheckSum) + return 0; + + } + + boot_printk("%s.....7..Flash_Address=%4x.\n",__FUNCTION__,Flash_Address); + ts->client->addr = 0x01; + boot_printk("%s.....7...%d\n",__FUNCTION__,ts->client->addr); + return 1; // Boot loader function is completed. + + } + +/*read the ct360 register ,used i2c bus*/ + +static int ct360_init_panel(struct ct360_ts_data *ts) +{ + return 0; +} + +static void report_value(int x,int y,struct ct360_ts_data *ts) +{ + myct360printk("%s(%d,%d)\n", __FUNCTION__,x, y); + //if((x>ts->x_max)||(y>ts->y_max)) + // return; + myct360printk("x=%d,y=%d,swap=%d\n",x,y,ts->swap_xy); + if (ts->swap_xy){ + swap(x, y); + } + if((x==0)||(y==0)) + return; + input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, 1); //Finger Size + input_report_abs(ts->input_dev, ABS_MT_POSITION_X, x); + input_report_abs(ts->input_dev, ABS_MT_POSITION_Y, y); + input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, 1); //Touch Size + input_mt_sync(ts->input_dev); + +} + +static void ct360_ts_work_func(struct work_struct *work) +{ + //struct timespec now; + //now = current_kernel_time();//(&now); + //printk("now %lu:%lu\n",now.tv_sec,now.tv_nsec); + + unsigned short x = 0; + unsigned short y = 0; + int i,ret,syn_flag = 0; + char toatl_num = 0; + int bufLen = 0; + unsigned char buf[TOUCH_REG_NUM*TOUCH_NUMBER+1] = {0}; + int point_status; + int point_id; + int touch_state_index=0; + int pendown = 0; + struct ct360_ts_data *ts = container_of(work, struct ct360_ts_data, work); + //printk("before read the gpio_get_value(ts->client->irq) is %d\n",gpio_get_value(ts->client->irq)); + + ret= ct360_read_regs(ts->client, buf, 20);//only one data represent the current touch num + if (ret < 0) { + printk("%s:i2c_transfer fail =%d\n", __FUNCTION__, toatl_num); + //enable_irq(ts->irq); + return; + } + + for (i = 0; i < 20; i += TOUCH_REG_NUM) + { + point_status = buf[i + 3] & 0x0F; + //if (point_status != 0) + { + point_id = buf[i+3] >> 4; + if((point_status == 1) || (point_status == 2)) { + x = (((s16)buf[i] << 4)|((s16)buf[i+2] >> 4)); + y = (((s16)buf[i+1] << 4)|((s16)buf[i+2] & 0x0f)); + printk("x=%d,y=%d\n",x,y); + printk("buf: 0x%02x, 0x%02x, 0x%02x, 0x%02x\n", buf[i], buf[i+1], buf[i+2], buf[i+3]); + input_mt_slot(ts->input_dev, point_id); + input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, true); + input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, point_id); + input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, 100); //Finger Size + input_report_abs(ts->input_dev, ABS_MT_POSITION_X, x); + input_report_abs(ts->input_dev, ABS_MT_POSITION_Y, y); + input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, 100); //Touch Size + + syn_flag = 1; + // touch_state[touch_state_index] = TOUCH_DOWN; + //printk("TOUCH_DOWN\n"); + // last_x[touch_state_index]=x; + // last_y[touch_state_index]=y; + // pendown = 1; + + } else if(point_status == 3 || point_status == 0) { + //if(touch_state[touch_state_index] == TOUCH_DOWN){ + //ct360printk("%s:%d touch up\n",__FUNCTION__,i); + input_mt_slot(ts->input_dev, point_id); + input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, false); + input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, -1); + syn_flag = 1; + touch_state[touch_state_index] = TOUCH_UP; + //printk("TOUCH_UP:%d\n", point_id); + // } + } + } + } + if(syn_flag) + input_sync(ts->input_dev); + +out: + //printk("the gpio_get_value(ts->client->irq) is %d\n",gpio_get_value(ts->client->irq)); + //if(pendown==1) + //{ + // queue_delayed_work(ts->ct360_wq, &ts->work, msecs_to_jiffies(15)); + //pendown = 0; + //} + //else +// enable_irq(ts->irq); + + return; +} + +static irqreturn_t ct360_ts_irq_handler(int irq, void *dev_id) +{ + struct ct360_ts_data *ts = dev_id; + //printk("the ts->irq is %d ts->client->addr=%d\n",gpio_get_value(ts->irq),ts->client->addr); +// disable_irq_nosync(ts->irq); + + queue_work(ts->ct360_wq, &ts->work); + + return IRQ_HANDLED; +} + +static int ct360_chip_Init(struct i2c_client *client) +{ + int ret=0; + u8 start_reg=0x00; + unsigned char status; + printk("enter ct360_chip_Init!!!!\n"); + u8 buf0[2]; + buf0[0] = 0xA5; + client->addr = 0x01; + ret = i2c_master_reg8_send(client, start_reg, buf0, 1, 200*1000); + msleep(10); + u8 buf1[2]; + buf1[0] = 0x00; + ret = i2c_master_reg8_send(client, start_reg, buf1, 1, 200*1000); + msleep(2); + if(ret<0){ + printk("\n--%s--Set Register values error !!!\n",__FUNCTION__); + } + i2c_master_reg8_recv(client,start_reg,&status,1,200*1000); + printk("the status is %x",status); + if(status != 0xAA) + { + printk("the status11 is %x",status); + } + + return ret; +} + +static int ct360_ts_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + struct ct360_ts_data *ts; + struct ct360_platform_data *pdata = client->dev.platform_data; + int ret = 0; + char loader_buf[3] = {0xfF,0x0f,0x2A}; + char boot_buf = 0; + char boot_loader[2] = {0}; + + ct360printk("%s \n",__FUNCTION__); + + if (!pdata) { + dev_err(&client->dev, "empty platform_data\n"); + goto err_check_functionality_failed; + } + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + printk(KERN_ERR "ct360_ts_probe: need I2C_FUNC_I2C\n"); + ret = -ENODEV; + goto err_check_functionality_failed; + } + + ts = kzalloc(sizeof(*ts), GFP_KERNEL); + if (ts == NULL) { + ret = -ENOMEM; + goto err_alloc_data_failed; + } + + ts->ct360_wq = create_singlethread_workqueue("ct360_wq"); + if (!ts->ct360_wq){ + printk(KERN_ERR"%s: create workqueue failed\n", __func__); + ret = -ENOMEM; + goto err_input_dev_alloc_failed; + } + + INIT_WORK(&ts->work, ct360_ts_work_func); + ts->client = client; + i2c_set_clientdata(client, ts); + + if(pdata->hw_init) + pdata->hw_init(); + + if(pdata->shutdown){ + pdata->shutdown(1); + mdelay(5); + pdata->shutdown(0); + mdelay(20); + pdata->shutdown(1); + mdelay(20); + } + +#if 0 + + //¼Ó40msÑÓʱ£¬·ñÔò¶ÁÈ¡³ö´í¡£¡£ + mdelay(20); + mdelay(20); + ret=ct360_write_regs(client,loader_buf, 3); + if(ret<0){ + printk("\n--%s--Set Register values error !!!\n",__FUNCTION__); + } + + mdelay(1); + printk("%s...........%d\n",__FUNCTION__,boot_buf); + ret = i2c_master_normal_send(client,boot_loader,1,100*1000); + if(ret < 0) + printk("ct360_ts_probe:sdf i2c_transfer fail =%d\n",ret); + else + printk("%s.............ok\n",__FUNCTION__); + + mdelay(2); + ret = ct360_read_regs(client,&boot_buf,1); + printk("%s....3......%x\n",__FUNCTION__,boot_buf); + + if(ret < 0) + printk("ct360_ts_probe:i2c_transfer fail =%d\n",ret); + else + printk("%s.............boot_buf=%d\n",__FUNCTION__,boot_buf); + + if ((abs(Binary_Data[16372]-boot_buf) >= 1) && (abs(Binary_Data[16372]-boot_buf) <= 2)) + { + printk("start Bootloader ...........boot_Buf=%x.....%d......%x..........TP \n\n",boot_buf,(Binary_Data[16372]-boot_buf),Binary_Data[16372]); + ret = CT360_CTP_BootLoader(ts); + if (ret == 1) + printk("TP Bootloader success\n"); + else + printk("TP Bootloader failed ret=%d\n",ret); + printk("stop Bootloader.................................TP \n\n"); + } + else + { + printk("Don't need bootloader.skip it %x \n",Binary_Data[16372]); + } +#endif + ts->client->addr = 0x01; + if(pdata->shutdown){ + pdata->shutdown(1); + mdelay(5); + pdata->shutdown(0); + mdelay(20); + pdata->shutdown(1); + mdelay(30); + } + + ts->client->addr = 0x01; + //ret=ct360_chip_Init(ts->client); + //if(ret<0) + //{ + // printk("%s:chips init failed\n",__FUNCTION__); + // goto err_input_dev_alloc_failed; + //} + + + + /* allocate input device */ + ts->input_dev = input_allocate_device(); + if (ts->input_dev == NULL) { + ret = -ENOMEM; + printk(KERN_ERR "%s: Failed to allocate input device\n",__FUNCTION__); + goto err_input_dev_alloc_failed; + } + + ts->x_max = pdata->x_max; + ts->y_max = pdata->y_max; + ts->swap_xy = 1; + ts->input_dev->name = ct360_TS_NAME; + ts->input_dev->dev.parent = &client->dev; + + __set_bit(EV_ABS, ts->input_dev->evbit); + __set_bit(EV_KEY, ts->input_dev->evbit); + __set_bit(EV_REP, ts->input_dev->evbit); + __set_bit(INPUT_PROP_DIRECT, ts->input_dev->propbit); + set_bit(ABS_MT_POSITION_X, ts->input_dev->absbit); + set_bit(ABS_MT_POSITION_Y, ts->input_dev->absbit); + set_bit(ABS_MT_TOUCH_MAJOR, ts->input_dev->absbit); + set_bit(ABS_MT_WIDTH_MAJOR, ts->input_dev->absbit); + + input_mt_init_slots(ts->input_dev, 5); + input_set_abs_params(ts->input_dev,ABS_MT_POSITION_X, 0, ts->x_max, 0, 0); + input_set_abs_params(ts->input_dev,ABS_MT_POSITION_Y, 0, ts->y_max, 0, 0); + input_set_abs_params(ts->input_dev,ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(ts->input_dev,ABS_MT_WIDTH_MAJOR, 0, 200, 0, 0); + + ret = input_register_device(ts->input_dev); + if (ret) { + printk(KERN_ERR "%s: Unable to register %s input device\n", __FUNCTION__,ts->input_dev->name); + goto err_input_register_device_failed; + } + + ts->irq = gpio_to_irq(client->irq); + ret = request_irq(ts->irq, ct360_ts_irq_handler, IRQF_TRIGGER_FALLING, client->name, ts); + if (ret){ + printk("!!! ct360 request_irq failed\n"); + goto err_input_register_device_failed; + } + +#ifdef CONFIG_HAS_EARLYSUSPEND + ts->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + ts->early_suspend.suspend = ct360_ts_early_suspend; + ts->early_suspend.resume = ct360_ts_late_resume; + register_early_suspend(&ts->early_suspend); +#endif + printk(KERN_INFO "%s: probe ok ts->client->addr=%d!!\n", __FUNCTION__,ts->client->addr); + + return 0; + +err_input_register_device_failed: + input_free_device(ts->input_dev); +err_input_dev_alloc_failed: + kfree(ts); +err_alloc_data_failed: +err_check_functionality_failed: + + return ret; +} + +static int ct360_ts_remove(struct i2c_client *client) +{ + struct ct360_ts_data *ts = i2c_get_clientdata(client); + unregister_early_suspend(&ts->early_suspend); + free_irq(ts->irq, ts); + input_unregister_device(ts->input_dev); + if (ts->ct360_wq) + destroy_workqueue(ts->ct360_wq); + + kfree(ts); + return 0; +} + +static int ct360_ts_suspend(struct i2c_client *client, pm_message_t mesg) +{ + struct ct360_ts_data *ts = i2c_get_clientdata(client); + struct ct360_platform_data *pdata = client->dev.platform_data; + int ret,i; + printk("ct360 TS Suspend\n"); + //if(pdata->shutdown) + // pdata->shutdown(1); + + disable_irq(ts->irq); + cancel_work_sync(&ts->work); + + char buf[3] = {0xff,0x0f,0x2b}; + char buf1[2]={0x00,0x00}; + //for(i=0;i<3;i++) + //{ + ret = i2c_master_normal_send(client,buf,3,100*1000); + if(ret<0) + { + printk("ct360_ts supend fail!\n"); + } + //} + mdelay(1); + ret = i2c_master_normal_send(client,buf1,2,100*1000); + if(ret<0) + { + printk("ct360_ts supend fail!!!\n"); + } + + //printk("the buf1 is %x\n",buf[0]); + //gpio_set_value(ts->gpio_reset, ts->gpio_reset_active_low? GPIO_LOW:GPIO_HIGH); + + return 0; +} + +static int ct360_ts_resume(struct i2c_client *client) +{ + struct ct360_ts_data *ts = i2c_get_clientdata(client); + struct ct360_platform_data *pdata = client->dev.platform_data; + // if(pdata->shutdown) + // pdata->shutdown(0); + + //ct360_init_panel(ts); + + printk("ct360 TS Resume\n"); + if(pdata->shutdown){ + pdata->shutdown(1); + mdelay(5); + pdata->shutdown(0); + mdelay(20); + pdata->shutdown(1); + mdelay(5); + } +// gpio_set_value(ts->gpio_reset, ts->gpio_reset_active_low? GPIO_HIGH:GPIO_LOW); +// msleep(50); + + //printk("enabling IRQ %d\n", ts->irq); + enable_irq(ts->irq); + msleep(50); + return 0; +} + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void ct360_ts_early_suspend(struct early_suspend *h) +{ + //#if 1 + struct ct360_ts_data *ts; + //printk("======%s======\n",__FUNCTION__); + ts = container_of(h, struct ct360_ts_data, early_suspend); + ct360_ts_suspend(ts->client, PMSG_SUSPEND); + //#endif +} + +static void ct360_ts_late_resume(struct early_suspend *h) +{ + #if 1 + struct ct360_ts_data *ts; + ts = container_of(h, struct ct360_ts_data, early_suspend); + ct360_ts_resume(ts->client); + #endif +} +#endif + +static const struct i2c_device_id ct360_ts_id[] = { + { ct360_TS_NAME, 0 }, + { } +}; + +static struct i2c_driver ct360_ts_driver = { + .probe = ct360_ts_probe, + .remove = ct360_ts_remove, +#ifndef CONFIG_HAS_EARLYSUSPEND + .suspend = ct360_ts_suspend, + .resume = ct360_ts_resume, +#endif + .id_table = ct360_ts_id, + .driver = { + .name = ct360_TS_NAME, + }, +}; + +static int __devinit ct360_ts_init(void) +{ + printk("%s\n",__FUNCTION__); + + return i2c_add_driver(&ct360_ts_driver); +} + +static void __exit ct360_ts_exit(void) +{ + printk("%s\n",__FUNCTION__); + i2c_del_driver(&ct360_ts_driver); +} + +late_initcall_sync(ct360_ts_init); +module_exit(ct360_ts_exit); + +MODULE_DESCRIPTION("ct360 Touchscreen Driver"); +MODULE_LICENSE("GPL"); -- 2.34.1