diff --git a/drivers/input/touchscreen/gt801_ts.c b/drivers/input/touchscreen/gt801_ts.c deleted file mode 100755 index 42265676bf5b..000000000000 --- a/drivers/input/touchscreen/gt801_ts.c +++ /dev/null @@ -1,671 +0,0 @@ -/* - * 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 "gt801_ts.h" - -#define GT801_DEBUG 0 -#if GT801_DEBUG - #define gt801printk(msg...) printk(msg); -#else - #define gt801printk(msg...) -#endif - -#define SINGLTOUCH_MODE 0 -#define GT801_REGS_NUM 53 - -#if SINGLTOUCH_MODE - #define TOUCH_NUMBER 1 -#else - #define TOUCH_NUMBER 2 -#endif - -#define TOUCH_REG_NUM 5 //ÿ�������Ҫ�ļĴ�����Ŀ - -const unsigned char GT801_RegData[GT801_REGS_NUM]={ - 0x19,0x05,0x06,0x28,0x02,0x14,0x14,0x10,0x40,0xB0,0x01,0xE0,0x03,0x4C,0x78, - 0x9A,0xBC,0xDE,0x65,0x43,0x20,0x11,0x00,0x00,0x00,0x00,0x05,0xCF,0x20,0x0B, - 0x0D,0x8D,0x32,0x3C,0x1E,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01 -}; - -struct gt801_ts_data { - u16 model; /* 801. */ - bool swap_xy; /* swap x and y axes */ - u16 x_min, x_max; - u16 y_min, y_max; - uint16_t addr; - int use_irq; - int gpio_pendown; - int gpio_reset; - int gpio_reset_active_low; - int pendown_iomux_mode; - int resetpin_iomux_mode; - char pendown_iomux_name[IOMUX_NAME_SIZE]; - char resetpin_iomux_name[IOMUX_NAME_SIZE]; - char phys[32]; - char name[32]; - struct i2c_client *client; - struct input_dev *input_dev; - struct hrtimer timer; - struct work_struct work; - struct early_suspend early_suspend; -}; -/*tochscreen private data*/ -static int touch_state[TOUCH_NUMBER] = {TOUCH_UP,TOUCH_UP}; -static struct workqueue_struct *gt801_wq; - -#ifdef CONFIG_HAS_EARLYSUSPEND -static void gt801_ts_early_suspend(struct early_suspend *h); -static void gt801_ts_late_resume(struct early_suspend *h); -#endif - -static int verify_coord(struct gt801_ts_data *ts,unsigned short *x,unsigned short *y) -{ - - gt801printk("%s:(%d/%d)\n",__FUNCTION__,*x, *y); - if((*x< ts->x_min) || (*x > ts->x_max)) - return -1; - - if((*y< ts->y_min) || (*y > ts->y_max)) - return -1; -// *x = ts->x_max - *x; - //if(*y <780) - *y = ts->y_max -*y; - - return 0; -} - -/*read the gt801 register ,used i2c bus*/ -static int gt801_read_regs(struct i2c_client *client, u8 reg, u8 buf[], unsigned len) -{ - int ret; - ret =i2c_master_reg8_recv(client, reg, buf, len, 200*1000); - if(ret < 0) - printk("gt801_ts_work_func:i2c_transfer fail =%d\n",ret); - return ret; -} -/* set the gt801 registe,used i2c bus*/ -static int gt801_write_regs(struct i2c_client *client, u8 reg, u8 const buf[], unsigned short len) -{ - int ret; - ret = i2c_master_reg8_send(client,reg, buf, len, 200*1000); - if (ret < 0) { - printk("gt801_ts_work_func:i2c_transfer fail =%d\n",ret); - } - return ret; -} -static int gt801_init_panel(struct gt801_ts_data *ts) -{ - return 0; -} - -static void gt801_ts_work_func(struct work_struct *work) -{ -#if SINGLTOUCH_MODE - -#else - int touch_state_index = 0; -#endif - - unsigned char start_reg = 0x02; - unsigned char buf[TOUCH_NUMBER*TOUCH_REG_NUM]; - unsigned short x; - unsigned short y; - int i,ret; - int syn_flag = 0; - int bufLen = TOUCH_NUMBER*TOUCH_REG_NUM; - - struct gt801_ts_data *ts = container_of(work, struct gt801_ts_data, work); - - gt801printk("%s\n",__FUNCTION__); - - ret=gt801_read_regs(ts->client, start_reg, buf,bufLen); - if (ret < 0) { - printk("%s:i2c_transfer fail =%d\n",__FUNCTION__,ret); - if (ts->use_irq) - enable_irq(ts->client->irq); - - return; - } - -#if SINGLTOUCH_MODE - i = 0; - if(buf[i+ptpressure] == 0) - { - gt801printk(" realse ts_dev->point.x=%d ,ts_dev->point.y=%d \n",ts->point.x,ts->point.y); - - if (touch_state[i] == TOUCH_DOWN) - { - input_report_key(ts->input_dev,BTN_TOUCH,0); - syn_flag = 1; - touch_state[i] = TOUCH_UP; - gt801printk("SINGLTOUCH_MODE up\n"); - } - } - else - { - x = ((( ((unsigned short)buf[i+ptxh] )<< 8) ) | buf[i+ptxl]); - y= (((((unsigned short)buf[i+ptyh] )<< 8) )| buf[i+ptyl]); - - if (ts->swap_xy) - swap(x, y); - - if (verify_coord(ts,&x,&y)) - goto out; - - if (touch_state[i] == TOUCH_UP) - { - gt801printk("SINGLTOUCH_MODE down\n"); - input_report_key(ts->input_dev,BTN_TOUCH,1); - touch_state[i] = TOUCH_DOWN; - } - - gt801printk("input_report_abs(%d/%d)\n",x,y); - input_report_abs(ts->input_dev,ABS_X,x ); - input_report_abs(ts->input_dev,ABS_Y,y ); - syn_flag = 1; - } - -#else - - for(i=0; iinput_dev, ABS_MT_TOUCH_MAJOR, 0); //Finger Size - input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, 0); //Touch Size - input_mt_sync(ts->input_dev); - syn_flag =1; - touch_state[touch_state_index] = TOUCH_UP; - } - } - else{ - x = ((( ((unsigned short)buf[i+ptxh] )<< 8) ) | buf[i+ptxl]); - y = (((((unsigned short)buf[i+ptyh] )<< 8) )| buf[i+ptyl]); - /* adjust the x and y to proper value added by hhb@rock-chips.com*/ - if(x < 480){ - x = 480-x; - } - - if(y < 800){ - y = 800-y; - } - - if (ts->swap_xy){ - swap(x, y); - } - - if (verify_coord(ts,&x,&y));//goto out; - - gt801printk("input_report_abs--%d-%d-(%d/%d)\n", i,touch_state_index, x, y); - 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, 5); //Touch Size - input_mt_sync(ts->input_dev); - syn_flag = 1; - touch_state[touch_state_index] = TOUCH_DOWN; - } - - touch_state_index++; - } - -#endif - - if(syn_flag){ - input_sync(ts->input_dev); - } - -out: - if (ts->use_irq) { - enable_irq(ts->client->irq); - } - return; -} -static enum hrtimer_restart gt801_ts_timer_func(struct hrtimer *timer) -{ - struct gt801_ts_data *ts = container_of(timer, struct gt801_ts_data, timer); - gt801printk("%s\n",__FUNCTION__); - - queue_work(gt801_wq, &ts->work); - - hrtimer_start(&ts->timer, ktime_set(0, 12500000), HRTIMER_MODE_REL); - return HRTIMER_NORESTART; -} - -static irqreturn_t gt801_ts_irq_handler(int irq, void *dev_id) -{ - struct gt801_ts_data *ts = dev_id; - gt801printk("%s=%d,%d\n",__FUNCTION__,ts->client->irq,ts->use_irq); - - if(ts->use_irq){ - disable_irq_nosync(ts->client->irq); - } - queue_work(gt801_wq, &ts->work); - return IRQ_HANDLED; -} -static int __devinit setup_resetPin(struct i2c_client *client, struct gt801_ts_data *ts) -{ - struct gt801_platform_data *pdata = client->dev.platform_data; - int err; - - ts->gpio_reset = pdata->gpio_reset; - ts->gpio_reset_active_low = pdata->gpio_reset_active_low; - ts->resetpin_iomux_mode = pdata->resetpin_iomux_mode; - - if(pdata->resetpin_iomux_name != NULL) - strcpy(ts->resetpin_iomux_name,pdata->resetpin_iomux_name); - - gt801printk("%s=%d,%s,%d,%d\n",__FUNCTION__,ts->gpio_reset,ts->resetpin_iomux_name,ts->resetpin_iomux_mode,ts->gpio_reset_active_low); - if (!gpio_is_valid(ts->gpio_reset)) { - dev_err(&client->dev, "no gpio_reset?\n"); - return -EINVAL; - } - - rk29_mux_api_set(ts->resetpin_iomux_name,ts->resetpin_iomux_mode); - - err = gpio_request(ts->gpio_reset, "gt801_resetPin"); - if (err) { - dev_err(&client->dev, "failed to request resetPin GPIO%d\n", - ts->gpio_reset); - return err; - } - - err = gpio_direction_output(ts->gpio_reset, ts->gpio_reset_active_low? GPIO_LOW:GPIO_HIGH); - if (err) { - dev_err(&client->dev, "failed to pulldown resetPin GPIO%d,err%d\n", - ts->gpio_reset,err); - gpio_free(ts->gpio_reset); - return err; - } - mdelay(100); - gpio_set_value(ts->gpio_reset, ts->gpio_reset_active_low? GPIO_HIGH:GPIO_LOW); - mdelay(100); - - return 0; -} - -static int __devinit setup_pendown(struct i2c_client *client, struct gt801_ts_data *ts) -{ - int err; - struct gt801_platform_data *pdata = client->dev.platform_data; - - if (!client->irq) { - dev_dbg(&client->dev, "no IRQ?\n"); - return -ENODEV; - } - - if (!gpio_is_valid(pdata->gpio_pendown)) { - dev_err(&client->dev, "no gpio_pendown?\n"); - return -EINVAL; - } - - ts->gpio_pendown = pdata->gpio_pendown; - strcpy(ts->pendown_iomux_name,pdata->pendown_iomux_name); - ts->pendown_iomux_mode = pdata->pendown_iomux_mode; - - gt801printk("%s=%d,%s,%d\n",__FUNCTION__,ts->gpio_pendown,ts->pendown_iomux_name,ts->pendown_iomux_mode); - - if (!gpio_is_valid(ts->gpio_pendown)) { - dev_err(&client->dev, "no gpio_pendown?\n"); - return -EINVAL; - } - - rk29_mux_api_set(ts->pendown_iomux_name,ts->pendown_iomux_mode); - err = gpio_request(ts->gpio_pendown, "gt801_pendown"); - if (err) { - dev_err(&client->dev, "failed to request pendown GPIO%d\n", - ts->gpio_pendown); - return err; - } - - err = gpio_pull_updown(ts->gpio_pendown, GPIOPullUp); - if (err) { - dev_err(&client->dev, "failed to pullup pendown GPIO%d\n", - ts->gpio_pendown); - gpio_free(ts->gpio_pendown); - return err; - } - return 0; -} - -static int gt801_chip_Init(struct i2c_client *client) -{ - u8 i,j; - int ret=0; - u8 start_reg=0x30; - u8 buf[GT801_REGS_NUM]; - - gt801printk("enter gt801_chip_Init!!!!\n"); - - for(j=0;j<2;j++) - { - ret=gt801_write_regs(client,start_reg, GT801_RegData,GT801_REGS_NUM); - if(ret<0) - { - printk("\n--%s--Set Register values error !!!\n",__FUNCTION__); - } - - ret=gt801_read_regs(client, start_reg, buf,GT801_REGS_NUM); - if(ret<0) - { - printk("\n--%s--Read Register values error !!!\n",__FUNCTION__); - } - - for(i=0;idev.platform_data; - int ret = 0; - - gt801printk("%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 "gt801_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; - } - INIT_WORK(&ts->work, gt801_ts_work_func); - ts->client = client; - i2c_set_clientdata(client, ts); - - ret = setup_resetPin(client,ts); - if(ret) - { - printk("%s:setup_resetPin fail\n",__FUNCTION__); - goto err_input_dev_alloc_failed; - } - - ret=gt801_chip_Init(ts->client); - if(ret<0) - { - printk("%s:chips init failed\n",__FUNCTION__); - goto err_resetpin_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->model = pdata->model ? : 801; - ts->swap_xy = pdata->swap_xy; - ts->x_min = pdata->x_min; - ts->x_max = pdata->x_max; - ts->y_min = pdata->y_min; - ts->y_max = pdata->y_max; - snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&client->dev)); - snprintf(ts->name, sizeof(ts->name), "gt%d-touchscreen", ts->model); - ts->input_dev->phys = ts->phys; - ts->input_dev->name = ts->name; - ts->input_dev->dev.parent = &client->dev; - -#if SINGLTOUCH_MODE - ts->input_dev->evbit[0] = BIT_MASK(EV_ABS)|BIT_MASK(EV_KEY); - ts->input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); - input_set_abs_params(ts->input_dev,ABS_X, - ts->x_min ? : 0, - ts->x_max ? : 480, - 0, 0); - input_set_abs_params(ts->input_dev,ABS_Y, - ts->y_min ? : 0, - ts->y_max ? : 800, - 0, 0); - -#else - ts->input_dev->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_ABS); - // ts->input_dev->absbit[0] = - // BIT(ABS_MT_POSITION_X) | BIT(ABS_MT_POSITION_Y) | - // BIT(ABS_MT_TOUCH_MAJOR) | BIT(ABS_MT_WIDTH_MAJOR); // for android - input_set_abs_params(ts->input_dev, ABS_MT_POSITION_X, - ts->x_min ? : 0, - ts->x_max ? : 480, - 0, 0); - input_set_abs_params(ts->input_dev, ABS_MT_POSITION_Y, - ts->y_min ? : 0, - ts->y_max ? : 800, - 0, 0); - input_set_abs_params(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0, 1, 0, 0); //Finger Size - input_set_abs_params(ts->input_dev, ABS_MT_WIDTH_MAJOR, 0, 10, 0, 0); //Touch Size -#endif - 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; - } - - client->irq = gpio_to_irq(client->irq); - if (client->irq) { - ret = setup_pendown(client,ts); - if(ret) - { - printk("%s:setup_pendown fail\n",__FUNCTION__); - goto err_input_register_device_failed; - } - - ret = request_irq(client->irq, gt801_ts_irq_handler, IRQF_DISABLED | IRQF_TRIGGER_LOW, client->name, ts); - if (ret == 0) { - gt801printk("%s:register ISR (irq=%d)\n", __FUNCTION__,client->irq); - ts->use_irq = 1; - } - else - dev_err(&client->dev, "request_irq failed\n"); - } - - if (!ts->use_irq) { - hrtimer_init(&ts->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); - ts->timer.function = gt801_ts_timer_func; - hrtimer_start(&ts->timer, ktime_set(1, 0), HRTIMER_MODE_REL); - } -#ifdef CONFIG_HAS_EARLYSUSPEND - ts->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; - ts->early_suspend.suspend = gt801_ts_early_suspend; - ts->early_suspend.resume = gt801_ts_late_resume; - register_early_suspend(&ts->early_suspend); -#endif - - printk(KERN_INFO "%s: Start touchscreen %s in %s mode\n", __FUNCTION__,ts->input_dev->name, ts->use_irq ? "interrupt" : "polling"); - - return 0; - -err_input_register_device_failed: - input_free_device(ts->input_dev); -err_resetpin_failed: - gpio_free(ts->gpio_reset); -err_input_dev_alloc_failed: - kfree(ts); -err_alloc_data_failed: -err_check_functionality_failed: - - return ret; -} - -static int gt801_ts_remove(struct i2c_client *client) -{ - struct gt801_ts_data *ts = i2c_get_clientdata(client); - unregister_early_suspend(&ts->early_suspend); - if (ts->use_irq) - free_irq(client->irq, ts); - else - hrtimer_cancel(&ts->timer); - input_unregister_device(ts->input_dev); - gpio_free(ts->gpio_pendown); - gpio_free(ts->gpio_reset); - kfree(ts); - return 0; -} - -static int gt801_ts_suspend(struct i2c_client *client, pm_message_t mesg) -{ - int ret; - struct gt801_ts_data *ts = i2c_get_clientdata(client); - - printk("gt801 TS Suspend\n"); - - if (ts->use_irq) - disable_irq(client->irq); - else - hrtimer_cancel(&ts->timer); - - ret = cancel_work_sync(&ts->work); - if (ret && ts->use_irq) /* if work was pending disable-count is now 2 */ - enable_irq(client->irq); - - gpio_set_value(ts->gpio_reset, ts->gpio_reset_active_low? GPIO_LOW:GPIO_HIGH); - - return 0; -} - - -static void gt801_ts_resume_work_func(struct work_struct *work) -{ - struct gt801_ts_data *ts = container_of(work, struct gt801_ts_data, work); - msleep(50); //touch panel will generate an interrupt when it sleeps out,so as to avoid tihs by delaying 50ms - enable_irq(ts->client->irq); - PREPARE_WORK(&ts->work, gt801_ts_work_func); - printk("enabling gt801_ts IRQ %d\n", ts->client->irq); -} - - -static int gt801_ts_resume(struct i2c_client *client) -{ - struct gt801_ts_data *ts = i2c_get_clientdata(client); - - gt801_init_panel(ts); - - printk("gt801 TS Resume\n"); - - gpio_set_value(ts->gpio_reset, ts->gpio_reset_active_low? GPIO_HIGH:GPIO_LOW); - - if (ts->use_irq) { - if(!work_pending(&ts->work)){ - PREPARE_WORK(&ts->work, gt801_ts_resume_work_func); - queue_work(gt801_wq, &ts->work); - } - } - else { - hrtimer_start(&ts->timer, ktime_set(1, 0), HRTIMER_MODE_REL); - } - - return 0; -} - -#ifdef CONFIG_HAS_EARLYSUSPEND -static void gt801_ts_early_suspend(struct early_suspend *h) -{ - struct gt801_ts_data *ts; - ts = container_of(h, struct gt801_ts_data, early_suspend); - gt801_ts_suspend(ts->client, PMSG_SUSPEND); -} - -static void gt801_ts_late_resume(struct early_suspend *h) -{ - struct gt801_ts_data *ts; - ts = container_of(h, struct gt801_ts_data, early_suspend); - gt801_ts_resume(ts->client); -} -#endif - -#define gt801_TS_NAME "gt801_ts" - -static const struct i2c_device_id gt801_ts_id[] = { - { gt801_TS_NAME, 0 }, - { } -}; - -static struct i2c_driver gt801_ts_driver = { - .probe = gt801_ts_probe, - .remove = gt801_ts_remove, -#ifndef CONFIG_HAS_EARLYSUSPEND - .suspend = gt801_ts_suspend, - .resume = gt801_ts_resume, -#endif - .id_table = gt801_ts_id, - .driver = { - .name = gt801_TS_NAME, - }, -}; - -static int __devinit gt801_ts_init(void) -{ - printk("%s\n",__FUNCTION__); - gt801_wq = create_singlethread_workqueue("gt801_wq"); - if (!gt801_wq) - return -ENOMEM; - return i2c_add_driver(>801_ts_driver); -} - -static void __exit gt801_ts_exit(void) -{ - printk("%s\n",__FUNCTION__); - i2c_del_driver(>801_ts_driver); - if (gt801_wq) - destroy_workqueue(gt801_wq); -} - -module_init(gt801_ts_init); -module_exit(gt801_ts_exit); - -MODULE_DESCRIPTION("gt801 Touchscreen Driver"); -MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/gt801_ts.h b/drivers/input/touchscreen/gt801_ts.h deleted file mode 100755 index e41f26ddd32c..000000000000 --- a/drivers/input/touchscreen/gt801_ts.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * drivers/input/touchscreen/gt801_ts.h - * - * 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. - */ - -#ifndef __DRIVERS_TOUCHSCREEN_GT801_TS_H -#define __DRIVERS_TOUCHSCREEN_GT801_TS_H - -#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, -}; - -struct gt801_platform_data { - - u16 model; /* 801. */ - bool swap_xy; /* swap x and y axes */ - u16 x_min, x_max; - u16 y_min, y_max; - int gpio_reset; - int gpio_reset_active_low; - int gpio_pendown; /* the GPIO used to decide the pendown */ - - char pendown_iomux_name[IOMUX_NAME_SIZE]; - char resetpin_iomux_name[IOMUX_NAME_SIZE]; - int pendown_iomux_mode; - int resetpin_iomux_mode; - - int (*get_pendown_state)(void); -}; -#endif diff --git a/drivers/input/touchscreen/gt8110_ts.c b/drivers/input/touchscreen/gt8110_ts.c deleted file mode 100755 index 6df4eda31249..000000000000 --- a/drivers/input/touchscreen/gt8110_ts.c +++ /dev/null @@ -1,1842 +0,0 @@ -/* drivers/input/touchscreen/goodix_touch.c - * - * Copyright (C) 2010 - 2011 Goodix, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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 -#include -#include - -#include -#include -#include -#include -#include -#include - -#define PEN_DOWN 1 -#define PEN_RELEASE 0 -#define PEN_DOWN_UP 2 - - -#define GOODIX_I2C_NAME "Goodix-TS" - -#define POLL_TIME 10 //actual query spacing interval:POLL_TIME+6 - -#define MAX_FINGER_NUM 10 - -struct rk_touch_info -{ - u32 press; - u32 x ; - u32 y ; - int status ; // 0 1 -} ; - -struct rk_ts_data{ - struct i2c_client *client; - struct input_dev *input_dev; - int irq; - int irq_pin; - int pwr_pin; - int rst_pin; - int read_mode; - struct hrtimer timer; - struct workqueue_struct *ts_wq; - struct delayed_work ts_work; - char phys[32]; - struct early_suspend early_suspend; - int (*power)(struct rk_ts_data * ts, int on); - int (*ts_init)(struct rk_ts_data*ts); - int (*input_parms_init)(struct rk_ts_data *ts); - void (*get_touch_info)(struct rk_ts_data *ts,char *point_num,struct rk_touch_info *info_buf); //get touch data info - uint16_t abs_x_max; - uint16_t abs_y_max; - uint8_t max_touch_num; - bool pendown; -}; - -struct goodix_ts_data { - uint16_t addr; - uint8_t bad_data; - struct i2c_client *client; - struct input_dev *input_dev; - int use_reset; - int use_irq; - int read_mode; - struct hrtimer timer; - struct delayed_work work; - char phys[32]; - int retry; - struct early_suspend early_suspend; - int (*power)(struct goodix_ts_data * ts, int on); - uint16_t abs_x_max; - uint16_t abs_y_max; - uint8_t max_touch_num; - uint8_t int_trigger_type; - bool pendown; -}; - -static const char *rk_ts_name = "Goodix Capacitive TouchScreen"; -static struct workqueue_struct *goodix_wq; -static struct i2c_client * i2c_connect_client = NULL; -static struct proc_dir_entry *goodix_proc_entry; - - -#define READ_COOR_ADDR 0x01 - - - -//*************************Firmware Update part******************************* -#define CONFIG_TOUCHSCREEN_GOODIX_IAP -#ifdef CONFIG_TOUCHSCREEN_GOODIX_IAP -#define UPDATE_NEW_PROTOCOL - -static unsigned int oldcrc32 = 0xFFFFFFFF; -static unsigned int crc32_table[256]; -static unsigned int ulPolynomial = 0x04c11db7; -static unsigned char rd_cfg_addr; -static unsigned char rd_cfg_len; -static unsigned char g_enter_isp = 0; - -static int goodix_update_write(struct file *filp, const char __user *buff, unsigned long len, void *data); -static int goodix_update_read( char *page, char **start, off_t off, int count, int *eof, void *data ); - -#define PACK_SIZE 64 //update file package size -#define MAX_TIMEOUT 60000 //update time out conut -#define MAX_I2C_RETRIES 20 //i2c retry times - -//I2C buf address -#define ADDR_CMD 80 -#define ADDR_STA 81 -#ifdef UPDATE_NEW_PROTOCOL - #define ADDR_DAT 0 -#else - #define ADDR_DAT 82 -#endif - -//moudle state -#define NEW_UPDATE_START 0x01 -#define UPDATE_START 0x02 -#define SLAVE_READY 0x08 -#define UNKNOWN_ERROR 0x00 -#define FRAME_ERROR 0x10 -#define CHECKSUM_ERROR 0x20 -#define TRANSLATE_ERROR 0x40 -#define FLASH_ERROR 0X80 - -//error no -#define ERROR_NO_FILE 2 //ENOENT -#define ERROR_FILE_READ 23 //ENFILE -#define ERROR_FILE_TYPE 21 //EISDIR -#define ERROR_GPIO_REQUEST 4 //EINTR -#define ERROR_I2C_TRANSFER 5 //EIO -#define ERROR_NO_RESPONSE 16 //EBUSY -#define ERROR_TIMEOUT 110 //ETIMEDOUT - -//update steps -#define STEP_SET_PATH 1 -#define STEP_CHECK_FILE 2 -#define STEP_WRITE_SYN 3 -#define STEP_WAIT_SYN 4 -#define STEP_WRITE_LENGTH 5 -#define STEP_WAIT_READY 6 -#define STEP_WRITE_DATA 7 -#define STEP_READ_STATUS 8 -#define FUN_CLR_VAL 9 -#define FUN_CMD 10 -#define FUN_WRITE_CONFIG 11 - -//fun cmd -#define CMD_DISABLE_TP 0 -#define CMD_ENABLE_TP 1 -#define CMD_READ_VER 2 -#define CMD_READ_RAW 3 -#define CMD_READ_DIF 4 -#define CMD_READ_CFG 5 -#define CMD_SYS_REBOOT 101 - -//read mode -#define MODE_RD_VER 1 -#define MODE_RD_RAW 2 -#define MODE_RD_DIF 3 -#define MODE_RD_CFG 4 -#endif - -static struct rk_touch_info *info_buf; - -static int dbg_thresd = 0; -#define DBG(x...) do { if(unlikely(dbg_thresd)) printk(KERN_INFO x); } while (0) - - -/******************************************************* -Description: - Read data from the i2c slave device; - This operation consisted of 2 i2c_msgs,the first msg used - to write the operate address,the second msg used to read data. - -Parameter: - client: i2c device. - buf[0]:operate address. - buf[1]~buf[len]:read data buffer. - len:operate length. - -return: - numbers of i2c_msgs to transfer -*********************************************************/ -static int goodix_i2c_read_bytes(struct i2c_client *client, uint8_t *buf, int len) -{ - struct i2c_msg msgs[2]; - int ret=-1; - int retries = 0; - - msgs[0].flags = client->flags; - msgs[0].addr=client->addr; - msgs[0].len=1; - msgs[0].buf=&buf[0]; - msgs[0].udelay = client->udelay; - msgs[0].scl_rate=200 * 1000; - - msgs[1].flags = client->flags | I2C_M_RD; - msgs[1].addr=client->addr; - msgs[1].len=len-1; - msgs[1].buf=&buf[1]; - msgs[1].udelay = client->udelay; - msgs[0].scl_rate=200 * 1000; - - while(retries<5) - { - ret=i2c_transfer(client->adapter,msgs, 2); - if(ret == 2)break; - retries++; - } - return ret; -} - -/******************************************************* -Description: - write data to the i2c slave device. - -Parameter: - client: i2c device. - buf[0]:operate address. - buf[1]~buf[len]:write data buffer. - len:operate length. - -return: - numbers of i2c_msgs to transfer. -*********************************************************/ -static int goodix_i2c_write_bytes(struct i2c_client *client,uint8_t *data,int len) -{ - struct i2c_msg msg; - int ret=-1; - int retries = 0; - - msg.flags=!I2C_M_RD; - msg.addr=client->addr; - msg.len=len; - msg.buf=data; - msg.udelay = client->udelay; - msg.scl_rate=200 * 1000; - - while(retries<5) - { - ret=i2c_transfer(client->adapter,&msg, 1); - if(ret == 1)break; - retries++; - } - return ret; -} - -static int goodix_config_ok(struct rk_ts_data *ts) -{ - int ret = 0; - unsigned int w,h, n; - uint8_t rd_cfg_buf[7] = {0x66,}; - - ret = goodix_i2c_read_bytes(ts->client, rd_cfg_buf, 7); - - w = (rd_cfg_buf[2]<<8) + rd_cfg_buf[1]; - h = (rd_cfg_buf[4]<<8) + rd_cfg_buf[3]; - n = rd_cfg_buf[5]; - - - ts->abs_x_max = w; - ts->abs_y_max = h; - ts->max_touch_num = n; - - printk("goodix_ts_init: X_MAX = %d,Y_MAX = %d,MAX_TOUCH_NUM = %d\n",ts->abs_x_max,ts->abs_y_max,ts->max_touch_num); - - return 0; -} -/******************************************************* -Description: - Goodix touchscreen initialize function. - -Parameter: - ts: i2c client private struct. - -return: - Executive outcomes.0---succeed. -*******************************************************/ -static int goodix_init_panel(struct rk_ts_data *ts) -{ - int ret=-1, retry = 10; - uint8_t rd_cfg_buf[7] = {0x66,}; - char test_data = 0; - - uint8_t config_info[] = { - 0x65,0x02,0x00,0x10,0x00,0x10,0x0A,0x62,0x4A,0x00, - 0x0F,0x28,0x02,0x10,0x10,0x00,0x00,0x20,0x00,0x00, - 0x10,0x10,0x10,0x00,0x37,0x00,0x00,0x00,0x01,0x02, - 0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C, - 0x0D,0xFF,0xFF,0x00,0x01,0x02,0x03,0x04,0x05,0x06, - 0x07,0x08,0x09,0x0A,0x0B,0x0C,0xFF,0xFF,0xFF,0x00, - 0x00,0x3C,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00 - }; - - ret=goodix_i2c_write_bytes(ts->client,config_info,95); - if( ret == 1) - { - printk("GT8110 send config para successfully!\n"); - } - else - { - printk("GT8110 send config para failed!\n"); - } - ts->abs_x_max = 4096; - ts->abs_y_max = 4096; - ts->max_touch_num = 10; - - return 0; - -} - -//fjp add =============================== -static bool goodix_get_status(char *p1,int*p2) -{ - bool status = PEN_DOWN; - if((*p2==PEN_DOWN) && (*p1==PEN_RELEASE)) - { - *p2 = PEN_DOWN_UP; //ոյ - status = PEN_RELEASE; - } - else if((*p2==PEN_RELEASE) && (*p1==PEN_RELEASE)) - { - *p2 = PEN_RELEASE; - status = PEN_RELEASE; - } - else - { - *p2 = PEN_DOWN; - } - return status; -} - -//=================================== -/******************************************************* -Description: - Read goodix touchscreen version function. - -Parameter: - ts: i2c client private struct. - -return: - Executive outcomes.0---succeed. -*******************************************************/ -static int goodix_read_version(struct rk_ts_data *ts, char **version) -{ - int ret = -1, count = 0; - char *version_data; - char *p; - - *version = (char *)vmalloc(18); - version_data = *version; - if(!version_data) - return -ENOMEM; - p = version_data; - memset(version_data, 0, 18); - version_data[0]=240; - ret=goodix_i2c_read_bytes(ts->client,version_data, 17); - if (ret < 0) - return ret; - version_data[17]='\0'; - - if(*p == '\0') - return 0; - do - { - if((*p > 122) || (*p < 48 && *p != 32) || (*p >57 && *p < 65) - ||(*p > 90 && *p < 97 && *p != '_')) //check illeqal character - count++; - }while(*++p != '\0' ); - if(count > 2) - return 0; - else - return 1; -} - -static int last_touch_num = -1; -static void goodix_get_touch_info(struct rk_ts_data *ts,char *point_num,struct rk_touch_info* info_buf) -{ - uint8_t point_data[(1-READ_COOR_ADDR)+1+2+5*MAX_FINGER_NUM+1]={ 0 }; //read address(1byte)+key index(1byte)+point mask(2bytes)+5bytes*MAX_FINGER_NUM+coor checksum(1byte) - uint8_t check_sum = 0; - int ret ; - uint16_t finger_current = 0; - uint16_t finger_bit = 0; - unsigned int count = 0, point_count = 0; - unsigned char touch_num = 0; - uint8_t chksum_err = 0; - unsigned int position = 0; - uint8_t track_id[MAX_FINGER_NUM] = {0}; - u8 index; - u8 temp =0; - point_data[0] = 0;//READ_COOR_ADDR;//0x65;//READ_COOR_ADDR; //read coor address - - if(!ts||!info_buf) - { - printk("goodix ts or info_buf is null\n"); - return; - } - - ret=goodix_i2c_read_bytes(ts->client, point_data, sizeof(point_data)/sizeof(point_data[0])); - if(ret != 2) - { - printk("goodix read error\n"); - } - finger_current = (point_data[2]<<8) + point_data[1]; - - DBG("finger_current:%d ==== max_touch_num:%d\n", finger_current,ts->max_touch_num);//add by fjp 2010-9-28 - - /*printk(" GT8110 read point data info\n"); - for(index = 0 ; index < 20 ; index++) - { - printk(" %x ",point_data[index]); - }*/ - - if(finger_current) - { - point_count = 0; - finger_bit = finger_current; - for(count = 0; (finger_bit != 0) && (count < ts->max_touch_num); count++)//cal how many point touch currntly - { - if(finger_bit & 0x01) - { - track_id[count] = PEN_DOWN; - point_count++; - } - finger_bit >>= 1; - } - touch_num = point_count; - - check_sum = point_data[2 - READ_COOR_ADDR] + point_data[3 - READ_COOR_ADDR]; //cal coor checksum - count = 4 - READ_COOR_ADDR; - for(point_count *= 5; point_count > 0; point_count--) - check_sum += point_data[count++]; - check_sum += point_data[count]; - //if(check_sum != 0) //checksum verify error - if(0) - { - printk("coor checksum error!\n"); - } - else - { - chksum_err = 0; - } - } - - //printk("current point num:%d\n",touch_num); - *point_num = touch_num; - if(touch_num < last_touch_num) //some flinger release - { - //printk("%d flinger release\n",last_touch_num-touch_num); - /*for(index = touch_num; index < last_touch_num; index++) - info_buf[index].status = 0;*/ - *point_num = last_touch_num; - touch_num = last_touch_num; - } - last_touch_num = touch_num; - //printk(" X and Y point value is\n"); - for(index = 0; index < touch_num; index++) - { - if(goodix_get_status(&track_id[index],&info_buf[index].status)) - { - position = 3 + 4*(temp++); - info_buf[index].x = (unsigned int) (point_data[position+1]<<8) + (unsigned int)( point_data[position]); - info_buf[index].y = (unsigned int)(point_data[position+3]<<8) + (unsigned int) (point_data[position+2]); - info_buf[index].press = (unsigned int) (point_data[position+4]); - //printk(" x = %d , y = %d , p = %d ", info_buf[index].x,info_buf[index].y, info_buf[index].press); - } - } - -} - - -/******************************************************* -Description: - Goodix touchscreen work function. - -Parameter: - ts: i2c client private struct. - -return: - Executive outcomes.0---succeed. -*******************************************************/ -static void rk_ts_work_func(struct work_struct *pwork) -{ - int i =0; - char point_num; - struct rk_ts_data *ts = container_of(to_delayed_work(pwork), struct rk_ts_data, ts_work); - - if(!ts) - { - printk("container of rk_ts_data fail\n"); - return; - } - if(!info_buf) - { - printk("info_buf fail\n"); - return; - } - - if(ts->get_touch_info) - { - ts->get_touch_info(ts,&point_num,info_buf); - } - for(i=0; i< point_num; i++) - { - DBG("info_buf[i].status =====%d\n",info_buf[i].status); - if(info_buf[i].status==PEN_DOWN_UP) - { - info_buf[i].status=PEN_RELEASE; - DBG("the key %d is up------\n",i); - input_mt_slot(ts->input_dev, i); - input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, false); - continue; - } - if(info_buf[i].status==PEN_DOWN) - { - input_mt_slot(ts->input_dev, i); - input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, true); - input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, info_buf[i].press); - input_report_abs(ts->input_dev, ABS_MT_POSITION_X, info_buf[i].x); - input_report_abs(ts->input_dev, ABS_MT_POSITION_Y, info_buf[i].y); - DBG("touch point %d %d >>x:%d>>y:%d\n",i,info_buf[i].status,info_buf[i].x,info_buf[i].y);//add by fjp 2010-9-28 - } - - - - - - } - input_sync(ts->input_dev); - - if(gpio_get_value(ts->irq_pin) == GPIO_LOW) - //if(point_num) - { - - DBG("touch down .............\n");//add by fjp 2010-9-28 - queue_delayed_work(ts->ts_wq, &ts->ts_work,msecs_to_jiffies(20)); - // goto exit; - - } - else - { - - DBG("touch up>>x:%d>>y:%d\n",info_buf[0].x,info_buf[0].y);//add by fjp 2010-9-28 - /*input_mt_slot(ts->input_dev, 0); - input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, true); - input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0); - - input_mt_slot(ts->input_dev, 0); - input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, false);*/ - - DBG("point_num+++++++++++ = %d\n", point_num);//add by fjp 2010-9-28 - for(i=0; i< point_num; i++) - { - // printk("info_buf[i].status +++++++%d\n",info_buf[i].status); - if(info_buf[i].status) - { - input_mt_slot(ts->input_dev, i);//ϱ - input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, false); - //input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0); - info_buf[i].status= PEN_RELEASE; - - - DBG("release+++++++++++ = %d\n", i);//add by fjp 2010-9-28 - - } - } - input_sync(ts->input_dev); - ts->pendown =PEN_RELEASE; - last_touch_num = 0; - - enable_irq(ts->irq); - } - - -//exit: - //kfree(info_buf); - - } - - -/******************************************************* -Description: - Timer interrupt service routine. - -Parameter: - timer: timer struct pointer. - -return: - Timer work mode. HRTIMER_NORESTART---not restart mode -*******************************************************/ -static enum hrtimer_restart goodix_ts_timer_func(struct hrtimer *timer) -{ - struct rk_ts_data *ts = container_of(timer, struct rk_ts_data, timer); - queue_delayed_work(goodix_wq,&ts->ts_work,0); - hrtimer_start(&ts->timer, ktime_set(0, (POLL_TIME+6)*1000000), HRTIMER_MODE_REL); - return HRTIMER_NORESTART; -} -/******************************************************* -Description: - External interrupt service routine. - -Parameter: - irq: interrupt number. - dev_id: private data pointer. - -return: - irq execute status. -*******************************************************/ -static irqreturn_t rk_ts_irq_handler(int irq, void *dev_id) -{ - - struct rk_ts_data *ts = (struct rk_ts_data*)dev_id; - disable_irq_nosync(ts->irq); - queue_delayed_work(ts->ts_wq, &ts->ts_work,0); - - return IRQ_HANDLED; -} - -static int rk_ts_suspend(struct i2c_client *client, pm_message_t mesg) -{ - int ret; - struct rk_ts_data *ts = i2c_get_clientdata(client); - - - - disable_irq(ts->irq); - -#if 1 - if (ts->power) { - ret = ts->power(ts, 0); - if (ret < 0) - printk(KERN_ERR "goodix_ts_resume power off failed\n"); - } -#endif - return 0; -} - -static int rk_ts_resume(struct i2c_client *client) -{ - int ret; - struct rk_ts_data *ts = i2c_get_clientdata(client); - -#if 1 - if (ts->power) { - ret = ts->power(ts, 1); - if (ret < 0) - printk(KERN_ERR "goodix_ts_resume power on failed\n"); - } -#endif - - enable_irq(client->irq); - - return 0; -} - - - -#ifdef CONFIG_HAS_EARLYSUSPEND -static void rk_ts_early_suspend(struct early_suspend *h) -{ - struct rk_ts_data *ts; - ts = container_of(h, struct rk_ts_data, early_suspend); - rk_ts_suspend(ts->client, PMSG_SUSPEND); -} - -static void rk_ts_late_resume(struct early_suspend *h) -{ - struct rk_ts_data *ts; - ts = container_of(h, struct rk_ts_data, early_suspend); - rk_ts_resume(ts->client); -} -#endif - -/******************************************************* -Description: - Goodix touchscreen power manage function. - -Parameter: - on: power status.0---suspend;1---resume. - -return: - Executive outcomes.-1---i2c transfer error;0---succeed. -*******************************************************/ -static int goodix_ts_power(struct rk_ts_data * ts, int on) -{ - int ret = -1; - unsigned char i2c_control_buf[2] = {0x38, 0x56}; //suspend cmd - int retry = 0; - if(on != 0 && on !=1) - { - printk(KERN_DEBUG "%s: Cant't support this command.", rk_ts_name); - return -EINVAL; - } - - - if(on == 0) //suspend - { - gpio_set_value(ts->rst_pin,GPIO_LOW); - msleep(20); - gpio_set_value(ts->rst_pin,GPIO_HIGH); - msleep(200); - while(retry<5) - { - ret = goodix_i2c_write_bytes(ts->client, i2c_control_buf, 2); - if(ret == 1) - { - printk(KERN_DEBUG "touch goodix Send suspend cmd successed \n"); - break; - } - retry++; - msleep(10); - } - if(ret > 0) - ret = 0; - } - else if(on == 1) //resume - { - printk(KERN_DEBUG "touch goodix int resume\n"); - gpio_set_value(ts->rst_pin,GPIO_LOW); - msleep(20); - gpio_set_value(ts->rst_pin,GPIO_HIGH); - ret = 0; - } - return ret; -} - - -static int goodix_input_params_init(struct rk_ts_data *ts) -{ - int ret ; - ts->input_dev = input_allocate_device(); - if (ts->input_dev == NULL) { - ret = -ENOMEM; - printk(KERN_ALERT "Failed to allocate input device\n"); - return ret; - } - - - __set_bit(INPUT_PROP_DIRECT, ts->input_dev->propbit); - __set_bit(EV_ABS, ts->input_dev->evbit); - - input_mt_init_slots(ts->input_dev, ts->max_touch_num); - input_set_abs_params(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); - input_set_abs_params(ts->input_dev, ABS_MT_POSITION_X, 0, /*ts->abs_x_max*/4096, 0, 0); - input_set_abs_params(ts->input_dev, ABS_MT_POSITION_Y, 0, /*ts->abs_y_max*/4096, 0, 0); - sprintf(ts->phys, "input/rkts"); - ts->input_dev->name = rk_ts_name; - ts->input_dev->phys = ts->phys; - ts->input_dev->id.bustype = BUS_I2C; - ts->input_dev->id.vendor = 0xDEAD; - ts->input_dev->id.product = 0xBEEF; - ts->input_dev->id.version = 10427; //screen firmware version - - ret = input_register_device(ts->input_dev); - if (ret) { - printk(KERN_ALERT "Probe: Unable to register %s input device\n", ts->input_dev->name); - return -1; - } - - return 0 ; - -} - -static int goodix_ts_init(struct rk_ts_data *ts) -{ - int ret ; - char *version_info = NULL; -#if 1 - char test_data = 1; - char retry; - for(retry=0;retry < 30; retry++) //test goodix - { - ret =goodix_i2c_write_bytes(ts->client, &test_data, 1); - if (ret > 0) - break; - } - if(ret <= 0) - { - printk(KERN_INFO "I2C communication ERROR!Goodix touchscreen driver become invalid\n"); - return -1; - } -#endif - - ret = goodix_read_version(ts, &version_info); - if(ret <= 0) - { - printk(KERN_INFO"Read version data failed!\n"); - } - else - { - printk("goodix_ts_init: version %s\n", (version_info+1)); - } - - ret=goodix_init_panel(ts); - if(ret != 0) { - printk("goodix panel init fail\n"); - return -1; - } - - vfree(version_info); - #ifdef CONFIG_TOUCHSCREEN_GOODIX_IAP - goodix_proc_entry = create_proc_entry("goodix-update", 0666, NULL); - if(goodix_proc_entry == NULL) - { - printk("Couldn't create proc entry!\n"); - ret = -ENOMEM; - return ret ; - } - else - { - printk("goodix_ts_init: create proc entry success!\n"); - goodix_proc_entry->write_proc = goodix_update_write; - goodix_proc_entry->read_proc = goodix_update_read; - - } -#endif - - return 0; -} -/******************************************************* -Description: - Goodix touchscreen probe function. - -Parameter: - client: i2c device struct. - id:device id. - -return: - Executive outcomes. 0---succeed. -*******************************************************/ -static int rk_ts_probe(struct i2c_client *client, const struct i2c_device_id *id) -{ - int ret = 0; - struct rk_ts_data *ts; - struct goodix_8110_platform_data *pdata ; - - printk(KERN_INFO "Install touch driver.\n"); - if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) - { - dev_err(&client->dev, "Must have I2C_FUNC_I2C.\n"); - ret = -ENODEV; - goto exit; - } - - ts = kzalloc(sizeof(struct rk_ts_data), GFP_KERNEL); - if (ts == NULL) { - printk(KERN_ALERT "alloc for struct rk_ts_data fail\n"); - ret = -ENOMEM; - goto exit; - } - - - pdata = client->dev.platform_data; - ts->irq_pin = pdata->irq_pin; - ts->rst_pin = pdata->reset; - ts->pendown =PEN_RELEASE; - ts->client = client; - ts->ts_init = goodix_ts_init; - ts->power = goodix_ts_power; - ts->get_touch_info = goodix_get_touch_info; - ts->input_parms_init = goodix_input_params_init; - i2c_set_clientdata(client, ts); - - if(pdata->hw_init) - pdata->hw_init(); - - - gpio_set_value(pdata->reset, 1); - msleep(200); - - if(ts->ts_init) - { - ret = ts->ts_init(ts); - if(ret < 0) - { - printk(KERN_ALERT "rk ts init fail\n"); - goto exit; - } - } - - if(ts->input_parms_init) - { - ts->input_parms_init(ts); - } - - i2c_connect_client = client; - #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,32) - ts->ts_wq= create_rt_workqueue("rk_ts_wq"); //create a work queue and worker thread - #else - ts->ts_wq= create_workqueue("rk_ts_wq"); - #endif - if (!ts->ts_wq){ - printk(KERN_ALERT "creat touch screen workqueue failed\n"); - return -ENOMEM; - } - - INIT_DELAYED_WORK(&ts->ts_work, rk_ts_work_func); -#ifdef CONFIG_HAS_EARLYSUSPEND - ts->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; - ts->early_suspend.suspend = rk_ts_early_suspend; - ts->early_suspend.resume = rk_ts_late_resume; - register_early_suspend(&ts->early_suspend); -#endif - - info_buf= kzalloc(ts->max_touch_num*sizeof(struct rk_touch_info), GFP_KERNEL); - if(!info_buf) - { - printk(KERN_ALERT "alloc for rk_touch_info fail\n"); - goto err_input_register_device_failed; - } - - ts->irq=gpio_to_irq(ts->irq_pin) ; //If not defined in client - if (ts->irq) - { - ret = gpio_request(pdata->irq_pin, "TS_IRQ_PIN"); //Request IO - if (ret < 0) - { - printk(KERN_ALERT "Failed to request for touch irq\n"); - goto err_input_register_device_failed; - } - else - { - gpio_direction_input(pdata->irq_pin); - } - - ret = request_irq(ts->irq, rk_ts_irq_handler ,IRQ_TYPE_LEVEL_LOW/*IRQF_TRIGGER_FALLING*/,client->name, ts); - if (ret != 0) { - printk(KERN_ALERT "Cannot allocate ts INT!ERRNO:%d\n", ret); - gpio_free(ts->irq_pin); - goto err_input_register_device_failed; - } - } - printk("goodix_ts_init: probe successfully!\n"); - return 0; - - -err_input_register_device_failed: - input_free_device(ts->input_dev); - i2c_set_clientdata(client, NULL); - kfree(ts); -exit: - return ret; -} - - -/******************************************************* -Description: - Goodix touchscreen driver release function. - -Parameter: - client: i2c device struct. - -return: - Executive outcomes. 0---succeed. -*******************************************************/ -static int rk_ts_remove(struct i2c_client *client) -{ - struct rk_ts_data *ts = i2c_get_clientdata(client); -#ifdef CONFIG_HAS_EARLYSUSPEND - unregister_early_suspend(&ts->early_suspend); -#endif -#ifdef CONFIG_TOUCHSCREEN_GOODIX_IAP - remove_proc_entry("goodix-update", NULL); -#endif - - gpio_free(ts->irq_pin); - free_irq(ts->irq, ts); - dev_notice(&client->dev,"The driver is removing...\n"); - i2c_set_clientdata(client, NULL); - input_unregister_device(ts->input_dev); - if(info_buf) - kfree(info_buf); - kfree(ts); - return 0; -} - -static void rk_ts_shutdown(struct i2c_client *client) -{ -#ifdef CONFIG_HAS_EARLYSUSPEND - struct rk_ts_data *ts = i2c_get_clientdata(client); - unregister_early_suspend(&ts->early_suspend); -#endif -} - -//******************************Begin of firmware update surpport******************************* -#ifdef CONFIG_TOUCHSCREEN_GOODIX_IAP -/** -@brief CRC cal proc,include : Reflect,init_crc32_table,GenerateCRC32 -@param global var oldcrc32 -@return states -*/ -static unsigned int Reflect(unsigned long int ref, char ch) -{ - unsigned int value=0; - int i; - for(i = 1; i < (ch + 1); i++) - { - if(ref & 1) - value |= 1 << (ch - i); - ref >>= 1; - } - return value; -} -/*---------------------------------------------------------------------------------------------------------*/ -/* CRC Check Program INIT */ -/*---------------------------------------------------------------------------------------------------------*/ -static void init_crc32_table(void) -{ - unsigned int temp; - unsigned int t1,t2; - unsigned int flag; - int i,j; - for(i = 0; i <= 0xFF; i++) - { - temp=Reflect(i, 8); - crc32_table[i]= temp<< 24; - for (j = 0; j < 8; j++) - { - - flag=crc32_table[i]&0x80000000; - t1=(crc32_table[i] << 1); - if(flag==0) - t2=0; - else - t2=ulPolynomial; - crc32_table[i] =t1^t2 ; - - } - crc32_table[i] = Reflect(crc32_table[i], 32); - } -} -/*---------------------------------------------------------------------------------------------------------*/ -/* CRC main Program */ -/*---------------------------------------------------------------------------------------------------------*/ -static void GenerateCRC32(unsigned char * buf, unsigned int len) -{ - unsigned int i; - unsigned int t; - - for (i = 0; i != len; ++i) - { - t = (oldcrc32 ^ buf[i]) & 0xFF; - oldcrc32 = ((oldcrc32 >> 8) & 0xFFFFFF) ^ crc32_table[t]; - } -} - -static struct file * update_file_open(char * path, mm_segment_t * old_fs_p) -{ - struct file * filp = NULL; - int errno = -1; - - filp = filp_open(path, O_RDONLY, 0644); - - if(!filp || IS_ERR(filp)) - { - if(!filp) - errno = -ENOENT; - else - errno = PTR_ERR(filp); - printk(KERN_ERR "The update file for Guitar open error.\n"); - return NULL; - } - *old_fs_p = get_fs(); - set_fs(get_ds()); - - filp->f_op->llseek(filp,0,0); - return filp ; -} - -static void update_file_close(struct file * filp, mm_segment_t old_fs) -{ - set_fs(old_fs); - if(filp) - filp_close(filp, NULL); -} -static int update_get_flen(char * path) -{ - struct file * file_ck = NULL; - mm_segment_t old_fs; - int length ; - - file_ck = update_file_open(path, &old_fs); - if(file_ck == NULL) - return 0; - - length = file_ck->f_op->llseek(file_ck, 0, SEEK_END); - //printk("File length: %d\n", length); - if(length < 0) - length = 0; - update_file_close(file_ck, old_fs); - return length; -} -static int update_file_check(char * path) -{ - unsigned char buffer[64] = { 0 } ; - struct file * file_ck = NULL; - mm_segment_t old_fs; - int count, ret, length ; - - file_ck = update_file_open(path, &old_fs); - - if(path != NULL) - printk("File Path:%s\n", path); - - if(file_ck == NULL) - return -ERROR_NO_FILE; - - length = file_ck->f_op->llseek(file_ck, 0, SEEK_END); -#ifdef GUITAR_MESSAGE - printk(KERN_INFO "gt801 update: File length: %d\n",length); -#endif - if(length <= 0 || (length%4) != 0) - { - update_file_close(file_ck, old_fs); - return -ERROR_FILE_TYPE; - } - - //set file point to the begining of the file - file_ck->f_op->llseek(file_ck, 0, SEEK_SET); - oldcrc32 = 0xFFFFFFFF; - init_crc32_table(); - while(length > 0) - { - ret = file_ck->f_op->read(file_ck, buffer, sizeof(buffer), &file_ck->f_pos); - if(ret > 0) - { - for(count = 0; count < ret; count++) - GenerateCRC32(&buffer[count],1); - } - else - { - update_file_close(file_ck, old_fs); - return -ERROR_FILE_READ; - } - length -= ret; - } - oldcrc32 = ~oldcrc32; -#ifdef GUITAR_MESSAGE - printk("CRC_Check: %u\n", oldcrc32); -#endif - update_file_close(file_ck, old_fs); - return 1; -} - -unsigned char wait_slave_ready(struct rk_ts_data *ts, unsigned short *timeout) -{ - unsigned char i2c_state_buf[2] = {ADDR_STA, UNKNOWN_ERROR}; - int ret; - while(*timeout < MAX_TIMEOUT) - { - ret = goodix_i2c_read_bytes(ts->client, i2c_state_buf, 2); - if(ret <= 0) - return ERROR_I2C_TRANSFER; - if(i2c_state_buf[1] & SLAVE_READY) - { - return i2c_state_buf[1]; - //return 1; - } - msleep(10); - *timeout += 5; - } - return 0; -} - -static int goodix_update_write(struct file *filp, const char __user *buff, unsigned long len, void *data) -{ - unsigned char cmd[220]; - int ret = -1; - - static unsigned char update_path[100]; - static unsigned short time_count = 0; - static unsigned int file_len = 0; - - unsigned char i2c_control_buf[2] = {ADDR_CMD, 0}; - unsigned char i2c_states_buf[2] = {ADDR_STA, 0}; - unsigned char i2c_data_buf[PACK_SIZE+1+8] = {ADDR_DAT,}; - //unsigned char i2c_rd_buf[1+4+PACK_SIZE+4]; - unsigned char i2c_rd_buf[160]; - unsigned char retries = 0; - unsigned int rd_len; - unsigned char i = 0; - static unsigned char update_need_config = 0; - - unsigned char checksum_error_times = 0; -#ifdef UPDATE_NEW_PROTOCOL - unsigned int frame_checksum = 0; - unsigned int frame_number = 0; -#else - unsigned char send_crc = 0; -#endif - - struct file * file_data = NULL; - mm_segment_t old_fs; - struct rk_ts_data *ts; - - ts = i2c_get_clientdata(i2c_connect_client); - if(ts==NULL) - return 0; - - if(copy_from_user(&cmd, buff, len)) - { - return -EFAULT; - } - switch(cmd[0]) - { - case STEP_SET_PATH: - printk(KERN_INFO"Write cmd is:%d,cmd arg is:%s,write len is:%ld\n",cmd[0], &cmd[1], len); - memset(update_path, 0, 100); - strncpy(update_path, cmd+1, 100); - if(update_path[0] == 0) - return 0; - else - return 1; - case STEP_CHECK_FILE: - printk(KERN_INFO"Begin to firmware update ......\n"); - ret = update_file_check(update_path); - if(ret <= 0) - { - printk(KERN_INFO"fialed to check update file!\n"); - return ret; - } - msleep(500); - printk(KERN_INFO"Update check file success!\n"); - return 1; - case STEP_WRITE_SYN: - printk(KERN_INFO"STEP1:Write synchronization signal!\n"); - i2c_control_buf[1] = UPDATE_START; - ret = goodix_i2c_write_bytes(ts->client, i2c_control_buf, 2); - if(ret <= 0) - { - ret = ERROR_I2C_TRANSFER; - return ret; - } - //the time include time(APROM -> LDROM) and time(LDROM init) - msleep(1000); - return 1; - case STEP_WAIT_SYN: - printk(KERN_INFO"STEP2:Wait synchronization signal!\n"); - while(retries < MAX_I2C_RETRIES) - { - i2c_states_buf[1] = UNKNOWN_ERROR; - ret = goodix_i2c_read_bytes(ts->client, i2c_states_buf, 2); - printk(KERN_INFO"The read byte is:%d\n", i2c_states_buf[1]); - if(i2c_states_buf[1] & UPDATE_START) - { - if(i2c_states_buf[1] & NEW_UPDATE_START) - { - #ifdef UPDATE_NEW_PROTOCOL - update_need_config = 1; - return 2; - #else - return 1; - #endif - } - break; - } - msleep(5); - retries++; - time_count += 10; - } - if((retries >= MAX_I2C_RETRIES) && (!(i2c_states_buf[1] & UPDATE_START))) - { - if(ret <= 0) - return 0; - else - return -1; - } - return 1; - case STEP_WRITE_LENGTH: - printk(KERN_INFO"STEP3:Write total update file length!\n"); - file_len = update_get_flen(update_path); - if(file_len <= 0) - { - printk(KERN_INFO"get update file length failed!\n"); - return -1; - } - file_len += 4; - i2c_data_buf[1] = (file_len>>24) & 0xff; - i2c_data_buf[2] = (file_len>>16) & 0xff; - i2c_data_buf[3] = (file_len>>8) & 0xff; - i2c_data_buf[4] = file_len & 0xff; - file_len -= 4; - ret = goodix_i2c_write_bytes(ts->client, i2c_data_buf, 5); - if(ret <= 0) - { - ret = ERROR_I2C_TRANSFER; - return 0; - } - return 1; - case STEP_WAIT_READY: - printk(KERN_INFO"STEP4:Wait slave ready!\n"); - ret = wait_slave_ready(ts, &time_count); - if(ret == ERROR_I2C_TRANSFER) - return 0; - if(!ret) - { - return -1; - } - printk(KERN_INFO"Slave ready!\n"); - return 1; - case STEP_WRITE_DATA: -#ifdef UPDATE_NEW_PROTOCOL - printk(KERN_INFO"STEP5:Begin to send file data use NEW protocol!\n"); - file_data = update_file_open(update_path, &old_fs); - if(file_data == NULL) - { - return -1; - } - frame_number = 0; - while(file_len >= 0) - { - i2c_data_buf[0] = ADDR_DAT; - rd_len = (file_len >= PACK_SIZE) ? PACK_SIZE : file_len; - frame_checksum = 0; - if(file_len) - { - ret = file_data->f_op->read(file_data, i2c_data_buf+1+4, rd_len, &file_data->f_pos); - if(ret <= 0) - { - printk("[GOODiX_ISP_NEW]:Read File Data Failed!\n"); - return -1; - } - i2c_data_buf[1] = (frame_number>>24)&0xff; - i2c_data_buf[2] = (frame_number>>16)&0xff; - i2c_data_buf[3] = (frame_number>>8)&0xff; - i2c_data_buf[4] = frame_number&0xff; - frame_number++; - frame_checksum = 0; - for(i=0; i>8)&0xff; - i2c_data_buf[5+rd_len+2] = (frame_checksum>>16)&0xff; - i2c_data_buf[5+rd_len+3] = (frame_checksum>>24)&0xff; - } -rewrite: - printk(KERN_INFO"[GOODiX_ISP_NEW]:%d\n", file_len); - ret = goodix_i2c_write_bytes(ts->client, i2c_data_buf, 1+4+rd_len+4); - //if(ret <= 0) - if(ret != 1) - { - printk("[GOODiX_ISP_NEW]:Write File Data Failed!Return:%d\n", ret); - return 0; - } - - memset(i2c_rd_buf, 0x00, 1+4+rd_len+4); - ret = goodix_i2c_read_bytes(ts->client, i2c_rd_buf, 1+4+rd_len+4); - if(ret != 2) - { - printk("[GOODiX_ISP_NEW]:Read File Data Failed!Return:%d\n", ret); - return 0; - } - for(i=1; i<(1+4+rd_len+4); i++) //check communication - { - if(i2c_rd_buf[i] != i2c_data_buf[i]) - { - i = 0; - break; - } - } - if(!i) - { - i2c_control_buf[0] = ADDR_CMD; - i2c_control_buf[1] = 0x03; - goodix_i2c_write_bytes(ts->client, i2c_control_buf, 2); //communication error - printk("[GOODiX_ISP_NEW]:File Data Frame readback check Error!\n"); - } - else - { - i2c_control_buf[1] = 0x04; //let LDROM write flash - goodix_i2c_write_bytes(ts->client, i2c_control_buf, 2); - } - - //Wait for slave ready signal.and read the checksum - ret = wait_slave_ready(ts, &time_count); - if((ret & CHECKSUM_ERROR)||(!i)) - { - if(i) - { - printk("[GOODiX_ISP_NEW]:File Data Frame checksum Error!\n"); - } - checksum_error_times++; - msleep(20); - if(checksum_error_times > 20) //max retry times. - return 0; - goto rewrite; - } - checksum_error_times = 0; - if(ret & (FRAME_ERROR)) - { - printk("[GOODiX_ISP_NEW]:File Data Frame Miss!\n"); - return 0; - } - if(ret == ERROR_I2C_TRANSFER) - return 0; - if(!ret) - { - return -1; - } - if(file_len < PACK_SIZE) - { - update_file_close(file_data, old_fs); - break; - } - file_len -= rd_len; - }//end of while((file_len >= 0)) - return 1; -#else - printk(KERN_INFO"STEP5:Begin to send file data use OLD protocol!\n"); - file_data = update_file_open(update_path, &old_fs); - if(file_data == NULL) //file_data has been opened at the last time - { - return -1; - } - while((file_len >= 0) && (!send_crc)) - { - printk(KERN_INFO"[GOODiX_ISP_OLD]:%d\n", file_len); - i2c_data_buf[0] = ADDR_DAT; - rd_len = (file_len >= PACK_SIZE) ? PACK_SIZE : file_len; - if(file_len) - { - ret = file_data->f_op->read(file_data, i2c_data_buf+1, rd_len, &file_data->f_pos); - if(ret <= 0) - { - return -1; - } - } - if(file_len < PACK_SIZE) - { - send_crc = 1; - update_file_close(file_data, old_fs); - i2c_data_buf[file_len+1] = oldcrc32&0xff; - i2c_data_buf[file_len+2] = (oldcrc32>>8)&0xff; - i2c_data_buf[file_len+3] = (oldcrc32>>16)&0xff; - i2c_data_buf[file_len+4] = (oldcrc32>>24)&0xff; - ret = goodix_i2c_write_bytes(ts->client, i2c_data_buf, (file_len+1+4)); - //if(ret <= 0) - if(ret != 1) - { - printk("[GOODiX_ISP_OLD]:Write File Data Failed!Return:%d\n", ret); - return 0; - } - break; - } - else - { - ret = goodix_i2c_write_bytes(ts->client, i2c_data_buf, PACK_SIZE+1); - //if(ret <= 0) - if(ret != 1) - { - printk("[GOODiX_ISP_OLD]:Write File Data Failed!Return:%d\n", ret); - return 0; - } - } - file_len -= rd_len; - - //Wait for slave ready signal. - ret = wait_slave_ready(ts, &time_count); - if(ret == ERROR_I2C_TRANSFER) - return 0; - if(!ret) - { - return -1; - } - //Slave is ready. - }//end of while((file_len >= 0) && (!send_crc)) - return 1; -#endif - case STEP_READ_STATUS: - printk(KERN_INFO"STEP6:Read update status!\n"); - while(time_count < MAX_TIMEOUT) - { - ret = goodix_i2c_read_bytes(ts->client, i2c_states_buf, 2); - if(ret <= 0) - { - return 0; - } - if(i2c_states_buf[1] & SLAVE_READY) - { - if(!(i2c_states_buf[1] &0xf0)) - { - printk(KERN_INFO"The firmware updating succeed!update state:0x%x\n",i2c_states_buf[1]); - return 1; - } - else - { - printk(KERN_INFO"The firmware updating failed!update state:0x%x\n",i2c_states_buf[1]); - return 0; - - } - } - msleep(1); - time_count += 5; - } - return -1; - case FUN_CLR_VAL: //clear the static val - time_count = 0; - file_len = 0; - update_need_config = 0; - return 1; - case FUN_CMD: //functional command - if(cmd[1] == CMD_DISABLE_TP) - { - printk(KERN_INFO"Disable TS int!\n"); - g_enter_isp = 1; - disable_irq(ts->irq); - } - else if(cmd[1] == CMD_ENABLE_TP) - { - printk(KERN_INFO"Enable TS int!\n"); - g_enter_isp = 0; - enable_irq(ts->irq); - } - else if(cmd[1] == CMD_READ_VER) - { - printk(KERN_INFO"Read version!\n"); - ts->read_mode = MODE_RD_VER; - } - else if(cmd[1] == CMD_READ_RAW) - { - printk(KERN_INFO"Read raw data!\n"); - ts->read_mode = MODE_RD_RAW; - i2c_control_buf[1] = 201; - ret = goodix_i2c_write_bytes(ts->client, i2c_control_buf, 2); //read raw data cmd - if(ret <= 0) - { - printk(KERN_INFO"Write read raw data cmd failed!\n"); - return 0; - } - msleep(200); - } - else if(cmd[1] == CMD_READ_DIF) - { - printk(KERN_INFO"Read diff data!\n"); - ts->read_mode = MODE_RD_DIF; - i2c_control_buf[1] = 202; - ret = goodix_i2c_write_bytes(ts->client, i2c_control_buf, 2); //read diff data cmd - if(ret <= 0) - { - printk(KERN_INFO"Write read raw data cmd failed!\n"); - return 0; - } - msleep(200); - } - else if(cmd[1] == CMD_READ_CFG) - { - printk(KERN_INFO"Read config info!\n"); - ts->read_mode = MODE_RD_CFG; - rd_cfg_addr = cmd[2]; - rd_cfg_len = cmd[3]; - } - else if(cmd[1] == CMD_SYS_REBOOT) - { - printk(KERN_INFO"System reboot!\n"); - sys_sync(); - msleep(200); - kernel_restart(NULL); - } - return 1; - case FUN_WRITE_CONFIG: - - printk(KERN_INFO"Begin write config info!Config length:%d\n",cmd[1]); - for(i=3; i83)&&(cmd[2]<240)&&cmd[1]) - { - checksum_error_times = 0; -reconfig: - ret = goodix_i2c_write_bytes(ts->client, cmd+2, cmd[1]); - if(ret != 1) - { - printk("Write Config failed!return:%d\n",ret); - return -1; - } - if(!update_need_config)return 1; - - i2c_rd_buf[0] = cmd[2]; - ret = goodix_i2c_read_bytes(ts->client, i2c_rd_buf, cmd[1]); - if(ret != 2) - { - printk("Read Config failed!return:%d\n",ret); - return -1; - } - for(i=0; iclient, i2c_control_buf, 2); //communication error - checksum_error_times++; - msleep(20); - if(checksum_error_times > 20) //max retry times. - return 0; - goto reconfig; - } - else - { - i2c_control_buf[0] = ADDR_CMD; - i2c_control_buf[1] = 0x04; //let LDROM write flash - goodix_i2c_write_bytes(ts->client, i2c_control_buf, 2); - return 1; - } - - } - else - { - printk(KERN_INFO"Invalid config addr!\n"); - return -1; - } - default: - return -ENOSYS; - } - return 0; -} - -static int goodix_update_read( char *page, char **start, off_t off, int count, int *eof, void *data ) -{ - int ret = -1; - struct rk_ts_data *ts; - int len = 0; - char *version_info = NULL; - static unsigned char read_data[1201] = {80, }; - - ts = i2c_get_clientdata(i2c_connect_client); - if(ts==NULL) - return 0; - - if(ts->read_mode == MODE_RD_VER) //read version data - { - ret = goodix_read_version(ts, &version_info); - if(ret <= 0) - { - printk(KERN_INFO"Read version data failed!\n"); - vfree(version_info); - return 0; - } - - for(len=0;len<100;len++) - { - if(*(version_info + len) == '\0') - break; - } - printk(KERN_INFO"GOODiX Touchscreen Version is:%s\n", (version_info+1)); - strncpy(page, version_info+1, len + 1); - vfree(version_info); - *eof = 1; - return len+1; - } - else if((ts->read_mode == MODE_RD_RAW)||(ts->read_mode == MODE_RD_DIF)) //read raw data or diff - { - //printk(KERN_INFO"Read raw data\n"); - ret = goodix_i2c_read_bytes(ts->client, read_data, 1201); - if(ret <= 0) - { - if(ts->read_mode == 2) - printk(KERN_INFO"Read raw data failed!\n"); - if(ts->read_mode == 3) - printk(KERN_INFO"Read diff data failed!\n"); - return 0; - } - memcpy(page, read_data+1, 1200); - *eof = 1; - *start = NULL; - return 1200; - } - else if(ts->read_mode == MODE_RD_CFG) - { - if((rd_cfg_addr>83)&&(rd_cfg_addr<240)) - { - read_data[0] = rd_cfg_addr; - printk("read config addr is:%d\n", rd_cfg_addr); - } - else - { - read_data[0] = 101; - printk("invalid read config addr,use default!\n"); - } - if((rd_cfg_len<0)||(rd_cfg_len>156)) - { - printk("invalid read config length,use default!\n"); - rd_cfg_len = 239 - read_data[0]; - } - printk("read config length is:%d\n", rd_cfg_len); - ret = goodix_i2c_read_bytes(ts->client, read_data, rd_cfg_len); - if(ret <= 0) - { - printk(KERN_INFO"Read config info failed!\n"); - return 0; - } - memcpy(page, read_data+1, rd_cfg_len); - return rd_cfg_len; - } - return len; -} - -#endif -//******************************End of firmware update surpport******************************* -static const struct i2c_device_id goodix_ts_id[] = { - { "Goodix-TS", 0 }, - { } -}; - -static struct i2c_driver rk_ts_driver = { - .probe = rk_ts_probe, - .remove = rk_ts_remove, - .shutdown = rk_ts_shutdown, -#ifndef CONFIG_HAS_EARLYSUSPEND - .suspend = rk_ts_suspend, - .resume = rk_ts_resume, -#endif - .id_table = goodix_ts_id, - .driver = { - .name = "Goodix-TS", - .owner = THIS_MODULE, - }, -}; - - -static struct class *ts_debug_class = NULL; -static ssize_t dbg_mode_show(struct class *cls,struct class_attribute *attr, char *_buf) -{ - printk("%s>>>>>>>>\n",__func__); - return 0; -} - -static ssize_t dbg_mode_store(struct class *cls,struct class_attribute *attr, const char *buf, size_t _count) -{ - dbg_thresd = simple_strtol(buf,NULL,10); - if(dbg_thresd) - { - printk(KERN_INFO "ts debug open\n"); - } - else - { - printk(KERN_INFO "ts debug close"); - } - - return _count; -} -static CLASS_ATTR(debug, 0664, dbg_mode_show, dbg_mode_store); - -static int dbg_sys_init(void) -{ - int ret ; - ts_debug_class = class_create(THIS_MODULE, "ts_debug"); - ret = class_create_file(ts_debug_class, &class_attr_debug); - if (ret) - { - printk("Fail to creat class hkrkfb.\n"); - } - return 0; -} - - -/******************************************************* -Description: - Driver Install function. -return: - Executive Outcomes. 0---succeed. -********************************************************/ - -static void __init rk_ts_init_async(void *unused, async_cookie_t cookie) -{ - i2c_add_driver(&rk_ts_driver); - dbg_sys_init(); //for debug -} - -static int __init rk_ts_init(void) -{ - async_schedule(rk_ts_init_async, NULL); - return 0; -} - -/******************************************************* -Description: - Driver uninstall function. -return: - Executive Outcomes. 0---succeed. -********************************************************/ -static void __exit rk_ts_exit(void) -{ - printk(KERN_ALERT "Touchscreen driver of guitar exited.\n"); - i2c_del_driver(&rk_ts_driver); -} - -module_init(rk_ts_init); -module_exit(rk_ts_exit); - -MODULE_DESCRIPTION("Goodix Touchscreen Driver"); -MODULE_LICENSE("GPL"); - diff --git a/drivers/input/touchscreen/gt811_firmware.h b/drivers/input/touchscreen/gt811_firmware.h deleted file mode 100755 index a19bac40959d..000000000000 --- a/drivers/input/touchscreen/gt811_firmware.h +++ /dev/null @@ -1,274 +0,0 @@ -/* drivers/input/touchscreen/gt811_update.h - * - * Copyright (C) 2010 - 2011 Goodix, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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. - * - *Any problem,please contact andrew@goodix.com,+86 755-33338828 - * - */ - -#ifndef _LINUX_GT811_UPDATE_H -#define _LINUX_GT811_UPDATE_H -static unsigned char goodix_gt811_firmware[] = { - 0x11, - 0x10,0x10, - 0x45, - 0x00,0x00,0x00, - 0x41,0x00, - 0x0e,0xf0, - 0x06,0x24,0xad, - 0x00,0x00,0x00,0x00,0x00,0x00, - /*'G','O','O','D','I','X',*/ - - 0x4f,0xce,0x01,0x00,0x20,0x03,0xa7,0x00,0x08,0x8c,0x05,0xdf, - 0x26,0xf8,0x8e,0x05,0xdf,0xbd,0x41,0x16,0x20,0xfe,0x0e,0xbd,0xc2,0xd4,0xbd,0x4d, - 0x8c,0xbd,0x4d,0xc2,0xbd,0x41,0xb0,0xbd,0x47,0x61,0xbd,0x46,0x59,0xbd,0xf7,0x38, - 0x20,0x10,0x01,0x01,0x01,0x01,0x13,0xe6,0x01,0x08,0xd6,0xeb,0x26,0x04,0x01,0xcf, - 0x01,0x01,0xd6,0xeb,0x27,0xec,0xd6,0xe7,0x5c,0x26,0xe7,0xd7,0xeb,0xbd,0x46,0xf4, - 0xbd,0xc4,0x73,0xf6,0x07,0x0b,0x27,0x0f,0xbd,0x46,0xf8,0xbd,0x46,0x59,0xc6,0x80, - 0xd7,0xea,0xbd,0xf7,0x38,0x20,0xdb,0xbd,0xd4,0xb8,0xd6,0xea,0x5a,0x27,0x08,0xbd, - 0xf5,0x3c,0xbd,0xf7,0x38,0x20,0xcb,0x8d,0x64,0xbd,0x4c,0x90,0xbd,0xe9,0xd4,0xbd, - 0x4b,0xd7,0xbd,0x49,0x4c,0xbd,0xeb,0xe8,0xbd,0xf7,0x38,0xbd,0x42,0xa9,0xbd,0x47, - 0x87,0xbd,0x48,0xde,0xbd,0xd7,0xa2,0xbd,0x4b,0x41,0xbd,0xdb,0x6a,0xbd,0xef,0x1c, - 0xbd,0xdf,0x8d,0xbd,0xe3,0x51,0xbd,0xe3,0x71,0xbd,0xd5,0xa8,0xbd,0x4e,0x29,0xbd, - 0xef,0x95,0x20,0x8e,0x3c,0x34,0x30,0xbd,0xc7,0x1c,0xc6,0x5d,0x18,0xce,0x14,0x01, - 0x18,0xe7,0x00,0xbd,0x46,0x27,0xf7,0x07,0x10,0x56,0x56,0x56,0xc4,0xc0,0xe7,0x00, - 0xf6,0x07,0x21,0xc4,0x3f,0xea,0x00,0xf7,0x07,0x21,0x31,0x38,0x39,0xd6,0xef,0x26, - 0x1a,0xc6,0x01,0xd7,0xef,0xfe,0x01,0x28,0x3c,0xcc,0x0b,0x00,0xfd,0x01,0x28,0xbd, - 0x48,0x38,0xdd,0xf2,0xfd,0x02,0xf7,0x38,0xff,0x01,0x28,0x39,0x3c,0xd6,0xf5,0x26, - 0x03,0x7e,0x42,0x86,0xd6,0xac,0x5a,0x26,0x6e,0xfc,0x02,0x89,0x83,0x0d,0x80,0xce, - 0x00,0x14,0x02,0x8f,0x37,0xce,0x0b,0xa0,0x18,0xfe,0x01,0x28,0x32,0x81,0x08,0x23, - 0x0a,0x80,0x08,0xc6,0xa0,0x3a,0x3a,0x18,0x3a,0x18,0x3a,0xc6,0x14,0x3d,0x3a,0x18, - 0x3a,0x5f,0xd7,0x69,0xec,0x00,0x18,0xa3,0x00,0x7d,0x00,0x69,0x26,0x06,0xfd,0x02, - 0xfc,0xfd,0x02,0xfe,0x1a,0xb3,0x02,0xfc,0x2f,0x03,0xfd,0x02,0xfc,0x1a,0xb3,0x02, - 0xfe,0x2c,0x03,0xfd,0x02,0xfe,0x08,0x08,0x18,0x08,0x18,0x08,0x7c,0x00,0x69,0xd6, - 0x69,0xd1,0xc2,0x25,0xcf,0xd6,0xca,0x4f,0xf3,0x02,0xfe,0xb3,0x02,0xfc,0x2d,0x07, - 0xf6,0x02,0xf1,0xcb,0x02,0x20,0x06,0xf6,0x02,0xf1,0x27,0x01,0x5a,0xf7,0x02,0xf1, - 0xc1,0xfa,0x25,0x06,0xbd,0x49,0x43,0x7f,0x00,0xf5,0x38,0x39,0x3c,0xce,0x07,0x12, - 0xc6,0xa0,0xe7,0x00,0x5f,0xce,0x07,0x1d,0xe7,0x00,0x08,0x8c,0x07,0x48,0x23,0xf8, - 0xce,0x02,0xc4,0xe7,0x00,0x08,0x8c,0x02,0xec,0x25,0xf8,0x38,0x39,0x7f,0x03,0x33, - 0xbd,0xc5,0x25,0x13,0xe6,0x04,0x02,0x8d,0x49,0xbd,0x44,0x46,0xcc,0x01,0xc2,0xd0, - 0xda,0x82,0x00,0xd0,0xda,0x82,0x00,0xf3,0x02,0x90,0xfd,0x02,0x90,0x39,0x3c,0x18, - 0x3c,0x86,0x14,0xf6,0x03,0x33,0x3d,0xc3,0x0d,0x80,0x18,0x8f,0xce,0x02,0x2c,0xd6, - 0xc2,0xd7,0x6a,0xec,0x00,0x13,0xe6,0x40,0x02,0x47,0x56,0x18,0xed,0x00,0xc6,0x02, - 0x3a,0x18,0x3a,0x7a,0x00,0x6a,0x26,0xeb,0x4f,0x97,0xd1,0x7c,0x03,0x33,0x18,0x38, - 0x38,0x39,0x3c,0x18,0x3c,0xce,0x03,0x34,0x4f,0xc6,0xa0,0xa7,0x00,0x08,0x5a,0x26, - 0xfa,0x96,0xc1,0xb7,0x02,0x6f,0x18,0xce,0x0d,0x80,0xce,0x03,0x34,0xd6,0xc2,0xf7, - 0x02,0x6e,0x18,0x3c,0x4f,0x5f,0x18,0xe3,0x00,0x18,0x08,0x18,0x08,0x7a,0x02,0x6e, - 0x26,0xf4,0xfd,0x03,0x31,0x18,0x38,0x3c,0x4f,0xd6,0xc2,0x8f,0xfc,0x03,0x31,0x2a, - 0x0c,0x40,0x50,0x82,0x00,0x02,0x8f,0x40,0x50,0x82,0x00,0x20,0x02,0x02,0x8f,0xfd, - 0x03,0x31,0x38,0x96,0xc2,0xb7,0x02,0x6e,0x18,0x3c,0x18,0xec,0x00,0xb3,0x03,0x31, - 0x18,0xed,0x00,0x2d,0x04,0x2e,0x0d,0x20,0x18,0x6c,0x01,0x1a,0xa3,0x06,0x2c,0x11, - 0xed,0x06,0x20,0x0d,0x6c,0x00,0x1a,0xa3,0x04,0x2f,0x02,0xed,0x04,0xe3,0x02,0xed, - 0x02,0x18,0x08,0x18,0x08,0x7a,0x02,0x6e,0x26,0xd0,0x18,0x38,0xc6,0x0a,0x3a,0x58, - 0x18,0x3a,0x7a,0x02,0x6f,0x26,0x86,0xce,0x03,0x34,0x96,0xc1,0xb7,0x02,0x6f,0x4a, - 0xb7,0x03,0x29,0xb7,0x03,0x2a,0x4f,0xd6,0xc9,0xc0,0x0a,0xa3,0x04,0xe3,0x06,0x2b, - 0x15,0xd6,0xc1,0xf0,0x02,0x6f,0xb6,0x03,0x29,0xb1,0x03,0x2a,0x27,0x05,0xf7,0x03, - 0x29,0x20,0x03,0xf7,0x03,0x2a,0xc6,0x0a,0x3a,0x7a,0x02,0x6f,0x26,0xd8,0x8d,0x11, - 0xf6,0x03,0x29,0xf7,0x03,0x2a,0x8d,0x09,0xbd,0x45,0xff,0x8d,0x3a,0x18,0x38,0x38, - 0x39,0x7f,0x03,0x2c,0xf6,0x03,0x2a,0xf7,0x02,0x6f,0xd6,0xc2,0xd7,0x68,0xbd,0x45, - 0x1a,0xbd,0x45,0xc2,0x7c,0x02,0x6f,0xf6,0x02,0x6f,0xd1,0xc1,0x26,0xf0,0x7f,0x03, - 0x2c,0xf6,0x03,0x2a,0xf7,0x02,0x6f,0xd6,0xc2,0xd7,0x68,0xbd,0x45,0x1a,0xbd,0x45, - 0xc2,0x7a,0x02,0x6f,0x2a,0xf5,0x39,0x18,0xce,0x03,0x34,0xce,0x0d,0x80,0x96,0xc1, - 0xb7,0x02,0x6f,0x18,0x67,0x08,0x18,0x66,0x09,0x96,0xc2,0xb7,0x02,0x6e,0x3c,0xec, - 0x00,0x18,0xe3,0x08,0xed,0x00,0x08,0x08,0x7a,0x02,0x6e,0x26,0xf2,0x38,0xc6,0x0a, - 0x18,0x3a,0x58,0x3a,0x7a,0x02,0x6f,0x26,0xda,0x39,0x3c,0x4f,0x5f,0xb7,0x02,0x81, - 0xb7,0x02,0x80,0x97,0xe2,0x97,0xe1,0x97,0x68,0x97,0x67,0x18,0xce,0x0d,0x80,0xce, - 0x0d,0x80,0xff,0x02,0x89,0xff,0x02,0x87,0xd6,0xc1,0xd7,0x6a,0x3c,0x18,0x3c,0xd6, - 0xc2,0xd7,0x69,0x18,0xec,0x00,0x18,0x6f,0x00,0x18,0x6f,0x01,0x4d,0x2a,0x28,0x40, - 0x50,0x82,0x00,0x4d,0x27,0x02,0xc6,0xff,0xd1,0xc9,0x23,0x03,0x7c,0x00,0xe1,0xf1, - 0x02,0x7f,0x23,0x03,0x7c,0x02,0x80,0x4f,0xa7,0x00,0xf3,0x02,0x90,0xfd,0x02,0x90, - 0x86,0x02,0xb7,0x03,0x25,0x20,0x4d,0xd0,0xfb,0x82,0x00,0x2a,0x02,0x4f,0x5f,0x4d, - 0x27,0x02,0xc6,0xff,0xd1,0xc9,0x22,0x04,0x86,0x02,0x20,0x04,0x7c,0x00,0xe2,0x4f, - 0xb7,0x03,0x25,0xf1,0x02,0x7f,0x23,0x03,0x7c,0x02,0x81,0xe7,0x00,0x4f,0xf3,0x02, - 0x90,0xfd,0x02,0x90,0xe6,0x00,0xd1,0x68,0x23,0x11,0x96,0x68,0x97,0x67,0xd7,0x68, - 0xfc,0x02,0x89,0xfd,0x02,0x87,0xff,0x02,0x89,0x20,0x09,0xd1,0x67,0x23,0x05,0xd7, - 0x67,0xff,0x02,0x87,0x3c,0xc6,0xa0,0x3a,0x3a,0xf6,0x03,0x25,0xe7,0x00,0x38,0x08, - 0xc6,0x02,0x18,0x3a,0x7a,0x00,0x69,0x27,0x03,0x7e,0x44,0x6f,0x18,0x38,0x38,0xc6, - 0x14,0x3a,0x18,0x3a,0x7a,0x00,0x6a,0x27,0x03,0x7e,0x44,0x68,0x38,0x39,0xce,0x03, - 0x34,0xf6,0x02,0x6f,0x86,0x0a,0x3d,0x3a,0xec,0x00,0x3d,0x5d,0xfd,0x03,0x26,0x27, - 0x6e,0x86,0x01,0xf6,0x03,0x2c,0x27,0x10,0x5a,0x27,0x18,0x5a,0x27,0x26,0xf6,0x03, - 0x2b,0x27,0x05,0x5a,0x27,0x28,0x20,0x08,0xe6,0x00,0xe1,0x01,0x22,0x02,0x20,0x1e, - 0x4f,0x20,0x1b,0xf6,0x03,0x2b,0xc1,0x02,0x27,0x14,0xe6,0x00,0xd0,0x68,0xc1,0x04, - 0x2e,0xe6,0x20,0x1a,0x4f,0xf6,0x03,0x2b,0xc1,0x01,0x27,0x02,0x20,0x08,0xb7,0x03, - 0x28,0x4f,0xd6,0xc2,0x20,0x0e,0xb7,0x03,0x28,0x4f,0xe6,0x00,0x20,0x06,0xb7,0x03, - 0x28,0x4f,0xe6,0x01,0xfd,0x03,0x31,0xec,0x02,0x3c,0xfe,0x03,0x31,0x02,0x8f,0x38, - 0xfd,0x03,0x26,0x4f,0xf6,0x03,0x28,0x26,0x06,0xb3,0x03,0x26,0xfd,0x03,0x26,0xec, - 0x04,0xf3,0x03,0x26,0xfd,0x03,0x2f,0xec,0x06,0xf3,0x03,0x26,0xfd,0x03,0x2d,0xec, - 0x08,0xf3,0x03,0x26,0xed,0x08,0xfc,0x03,0x2d,0x47,0x56,0x47,0x56,0xe3,0x08,0xed, - 0x08,0xe6,0x00,0xd7,0x68,0x39,0xf6,0x03,0x2c,0xc1,0x03,0x2c,0x03,0xf7,0x03,0x2b, - 0x7f,0x03,0x2c,0x4f,0xd6,0xc9,0xc0,0x0a,0x1a,0xb3,0x03,0x2f,0x2c,0x03,0x7c,0x03, - 0x2c,0x40,0x50,0x82,0x00,0x1a,0xb3,0x03,0x2d,0x2f,0x06,0x7c,0x03,0x2c,0x7c,0x03, - 0x2c,0xf6,0x03,0x2c,0xc1,0x03,0x26,0x0a,0xf6,0x03,0x2b,0x26,0x05,0xc6,0x01,0xf7, - 0x03,0x2c,0x39,0x3c,0x18,0x3c,0xce,0x03,0x34,0x18,0xce,0x03,0x05,0xd6,0xc1,0x37, - 0xec,0x08,0x18,0xe3,0x00,0x47,0x56,0xed,0x08,0x18,0xed,0x00,0xc6,0x08,0x3a,0x18, - 0x08,0x18,0x08,0x33,0x5a,0x26,0xe8,0x18,0x38,0x38,0x39,0x3c,0xce,0x16,0x00,0x1d, - 0x00,0x02,0x1c,0x06,0x02,0x1d,0x07,0x02,0xbd,0xef,0x0d,0x1e,0x02,0x02,0x07,0x1d, - 0x06,0x02,0xc6,0x02,0x20,0x15,0x1d,0x06,0x02,0x1c,0x07,0x02,0xbd,0xef,0x0d,0x1f, - 0x02,0x02,0x07,0x1d,0x07,0x02,0xc6,0x01,0x20,0x01,0x5f,0x38,0x39,0x3c,0x34,0x30, - 0xbd,0xc8,0x97,0xd6,0x6a,0x4f,0xc3,0x07,0x92,0x18,0x8f,0xcc,0x42,0xca,0x18,0xed, - 0x01,0xbd,0x42,0x88,0x8d,0xb5,0xf7,0x07,0x10,0x56,0x56,0x56,0xc4,0xc0,0xe7,0x00, - 0xf6,0x07,0x21,0xc4,0x3f,0xea,0x00,0xf7,0x07,0x21,0x7f,0x02,0xc2,0xcc,0x80,0x00, - 0xfd,0x01,0x2e,0xf6,0x06,0xec,0xc4,0x0f,0xd7,0xfb,0x5f,0xd7,0xf5,0xd7,0xf4,0xf7, - 0x02,0xfb,0xd7,0xef,0xd7,0xc8,0xd7,0x6a,0x86,0x03,0x3d,0x4f,0xc3,0x03,0xd8,0xfd, - 0x03,0xd6,0xbd,0x4d,0x69,0xd6,0x6a,0x86,0x05,0x3d,0x4f,0xc3,0x03,0xe7,0x18,0x8f, - 0x18,0x6f,0x04,0x7c,0x00,0x6a,0xd6,0x6a,0xc1,0x05,0x25,0xdc,0xbd,0x48,0x20,0xd6, - 0xe6,0xc4,0x30,0xd7,0x68,0x26,0x0d,0xc6,0x0c,0xf7,0x02,0xed,0x5c,0xf7,0x02,0xee, - 0xc6,0x0f,0x20,0x09,0xc6,0x0c,0xf7,0x02,0xed,0x5c,0xf7,0x02,0xee,0xf7,0x02,0xef, - 0xc6,0x0a,0xf7,0x02,0xf0,0x31,0x38,0x39,0x7f,0x13,0x01,0x39,0xf6,0x07,0x21,0xc4, - 0xc0,0xca,0x20,0xf7,0x07,0x21,0xc6,0xf0,0xf7,0x07,0x22,0x5f,0xd7,0xfa,0x8d,0xe8, - 0xf6,0x07,0x0b,0x27,0x24,0x7f,0x07,0x0b,0xbd,0xf1,0x9e,0xf6,0x01,0x32,0x5a,0x26, - 0x18,0xf6,0x07,0x21,0xc4,0xc0,0xf7,0x07,0x21,0x7f,0x07,0x22,0xbd,0xf1,0x4e,0xfc, - 0x01,0x30,0xf7,0x07,0x0c,0xb7,0x07,0x0d,0x39,0x4f,0x5f,0xdd,0x75,0x8d,0xb9,0xbd, - 0xef,0x0d,0xf6,0x07,0x0b,0x26,0xce,0xdc,0x75,0xc3,0x00,0x01,0xdd,0x75,0x83,0x07, - 0xd0,0x25,0xea,0xd6,0xfa,0x26,0x05,0xbd,0xf7,0xd6,0x20,0x03,0xbd,0xf7,0xed,0xd6, - 0xfa,0xc8,0x01,0x20,0xa7,0x7f,0x07,0x11,0xc6,0x02,0xf7,0x06,0x92,0xbd,0xf3,0x11, - 0x39,0x39,0xd6,0xf5,0x26,0x0b,0x12,0xec,0x08,0x07,0xc6,0x01,0xd7,0xf5,0xbd,0x48, - 0xbc,0x7f,0x02,0xf1,0xbd,0xd2,0x22,0x7f,0x02,0x84,0x39,0xd6,0xcb,0xc5,0x80,0x26, - 0x01,0x39,0xbd,0x48,0x38,0x1a,0xb3,0x02,0xf7,0x24,0x03,0xfd,0x02,0xf7,0x37,0xf6, - 0x02,0xf9,0x33,0x26,0x03,0xfd,0x02,0xf3,0x1a,0xb3,0x02,0xf3,0x23,0x05,0xb3,0x02, - 0xf3,0x20,0x05,0xfc,0x02,0xf3,0x93,0xf0,0x1a,0x83,0x00,0xc8,0x25,0x03,0x8d,0x64, - 0x39,0xdc,0xf0,0xd3,0xed,0x24,0x03,0x7c,0x02,0xfa,0xdd,0xed,0xd6,0xac,0xc1,0x02, - 0x24,0x04,0x13,0xec,0x02,0x05,0xc6,0x01,0xf7,0x02,0xf2,0x7c,0x02,0xf9,0xf6,0x02, - 0xf9,0xc1,0x10,0x26,0x3e,0xc6,0x04,0xd7,0x6a,0xdc,0xed,0x74,0x02,0xfa,0x46,0x56, - 0x7a,0x00,0x6a,0x26,0xf6,0xfd,0x02,0xf5,0x93,0xf2,0x24,0x0c,0xdc,0xf2,0xb3,0x02, - 0xf5,0x83,0x01,0xf4,0x23,0x02,0x8d,0x2a,0xfc,0x02,0xf7,0x37,0x36,0xfc,0x02,0xf5, - 0xbd,0xf7,0xbb,0x31,0x31,0x83,0x00,0xc8,0x24,0x07,0xf6,0x02,0xf2,0x27,0x02,0x8d, - 0x11,0x8d,0x01,0x39,0x5f,0xf7,0x02,0xf9,0xf7,0x02,0xfa,0x4f,0xb7,0x02,0xf2,0xdd, - 0xed,0x39,0x7f,0x02,0x95,0x7f,0x02,0x94,0xbd,0x49,0x43,0x39,0x3c,0x18,0xfe,0x01, - 0x28,0xfe,0x01,0x28,0xc6,0x14,0x3a,0x4f,0x5f,0xdd,0xf0,0xd7,0xbe,0x20,0x66,0xd6, - 0xbe,0xc1,0x07,0x26,0x05,0xc6,0xa0,0x3a,0x20,0x08,0xc1,0x08,0x26,0x04,0xc6,0xa0, - 0x18,0x3a,0x5f,0xd7,0xbf,0x20,0x3f,0x3c,0x18,0x3c,0x3c,0x18,0x3c,0x3c,0xce,0x06, - 0xa2,0xd6,0xbf,0x3a,0xec,0x00,0x38,0x36,0x3a,0x18,0x3a,0xec,0x00,0x18,0xa3,0x00, - 0xdd,0xcf,0x33,0x18,0x38,0x38,0x3a,0x18,0x3a,0x18,0xec,0x00,0xa3,0x00,0xd3,0xcf, - 0x2a,0x05,0x43,0x53,0xc3,0x00,0x01,0xd3,0xf0,0x24,0x03,0xcc,0xff,0xff,0xdd,0xf0, - 0x18,0x38,0x38,0x7c,0x00,0xbf,0xd6,0xc2,0x5a,0xd1,0xbf,0x22,0xba,0xc6,0x14,0x3a, - 0x18,0x3a,0x7c,0x00,0xbe,0xd6,0xc0,0x5a,0xd1,0xbe,0x22,0x93,0xdc,0xf0,0x38,0x39, - 0x3c,0x18,0x3c,0xce,0x0b,0x00,0x18,0xce,0x0c,0x40,0xec,0x00,0xed,0xa0,0x18,0xec, - 0x00,0x18,0xed,0xa0,0xc6,0x02,0x3a,0x18,0x3a,0x8c,0x0b,0xa0,0x25,0xec,0x18,0x38, - 0x38,0x39,0x13,0xcb,0x80,0x2a,0xd6,0xe2,0xd1,0xe1,0x22,0x02,0xd6,0xe1,0x86,0x0a, - 0x3d,0xdd,0xf0,0xd6,0xda,0x86,0x07,0x3d,0x93,0xf0,0x24,0x05,0xbd,0x47,0x6e,0x20, - 0x0f,0xbd,0xce,0x22,0x13,0xec,0x08,0x05,0xbd,0x41,0xf8,0x20,0x03,0x5f,0xd7,0xf5, - 0x39,0x3c,0x3c,0x7e,0xce,0x98,0x3c,0x3c,0xbd,0xd0,0x9b,0x13,0xe6,0x02,0x06,0x7c, - 0x02,0x8c,0x7c,0x02,0x8b,0xfe,0x02,0x6c,0xe6,0x00,0xd1,0xca,0x25,0x16,0xf6,0x02, - 0x8b,0xc1,0x02,0x24,0x07,0xf6,0x02,0x8c,0xc1,0x02,0x25,0x08,0xc6,0x03,0xf7,0x02, - 0x8c,0xf7,0x02,0x8b,0x38,0x38,0x39,0xbd,0x48,0x38,0xdd,0xf2,0xbd,0xd1,0x6b,0x39, - 0xf6,0x07,0x11,0xf7,0x02,0x75,0xc1,0xc3,0x26,0x06,0x7f,0x07,0x11,0x7e,0xc0,0x00, - 0x15,0xe9,0xc0,0xf6,0x06,0x92,0x56,0x56,0x56,0xc4,0xc0,0xda,0xe9,0xd7,0xe9,0xf6, - 0x06,0x92,0xc5,0x03,0x26,0x05,0xca,0x02,0xf7,0x06,0x92,0xbd,0xec,0xc3,0xd6,0xb7, - 0x27,0x08,0xf6,0x02,0x16,0xca,0x20,0xf7,0x02,0x16,0x8d,0x0a,0xbd,0x4b,0x05,0xbd, - 0x4b,0x23,0xbd,0xe8,0xf5,0x39,0x3c,0x3c,0x34,0x30,0x6f,0x02,0xf6,0x01,0xb4,0x5a, - 0x27,0x03,0x7e,0x4a,0xbf,0xd6,0xb7,0xf7,0x07,0x22,0x5f,0xd7,0x6a,0x18,0xce,0x02, - 0xc4,0x58,0x58,0x58,0x18,0x3a,0x18,0xe6,0x00,0xd7,0x68,0x27,0x48,0x4f,0x05,0xc3, - 0x00,0xa0,0x37,0x36,0xd6,0x6a,0x58,0x58,0x58,0x4f,0xc3,0x02,0xc4,0x18,0x8f,0x18, - 0xa6,0x02,0x5f,0xed,0x00,0x18,0xe6,0x01,0x4f,0xe3,0x00,0x18,0x38,0x18,0xed,0x00, - 0xd6,0x68,0x4f,0x05,0xc3,0x00,0x96,0x37,0x36,0xd6,0x6a,0x58,0x58,0x58,0x4f,0xc3, - 0x02,0xc4,0x18,0x8f,0x18,0xa6,0x04,0x5f,0xed,0x00,0x18,0xe6,0x03,0x4f,0xe3,0x00, - 0x18,0x38,0x18,0xed,0x00,0x7c,0x00,0x6a,0xd6,0x6a,0xc1,0x05,0x25,0x9f,0x5f,0xd7, - 0x6a,0xc6,0x91,0xd7,0x68,0xbd,0x4a,0xc3,0xbd,0x4a,0xc3,0xbd,0x4a,0xc3,0xd6,0x6a, - 0x4f,0x05,0x18,0x8f,0x18,0xec,0xa2,0xdd,0x91,0x18,0xec,0x98,0xdd,0x8f,0xd6,0x91, - 0xf7,0x07,0x32,0xd6,0x92,0xf7,0x07,0x39,0xd6,0x8f,0xf7,0x07,0x3a,0xd6,0x90,0xf7, - 0x07,0x3b,0xd6,0x6a,0x4f,0x18,0x8f,0x18,0xe6,0x93,0xf7,0x07,0x3c,0xc6,0xab,0xd7, - 0x68,0x7c,0x00,0x6a,0x8d,0x71,0x5f,0xd7,0x68,0xd7,0x6a,0x74,0x00,0x68,0x4f,0x18, - 0x8f,0x18,0xe6,0x93,0x27,0x03,0x14,0x68,0x10,0x7c,0x00,0x6a,0xd6,0x6a,0xc1,0x05, - 0x25,0xe9,0xd6,0xb7,0x27,0x03,0x14,0x68,0x20,0xf6,0x07,0x21,0xc4,0xc0,0xda,0x68, - 0xf7,0x07,0x21,0xd6,0x68,0xd7,0x6a,0xc6,0x07,0xd7,0x68,0x13,0x6a,0x02,0x04,0xc6, - 0x0c,0xd7,0x68,0x13,0x6a,0x1c,0x04,0xc6,0x21,0xd7,0x68,0x5f,0xd7,0x6a,0x20,0x12, - 0x4f,0xc3,0x06,0x92,0x18,0x8f,0xe6,0x02,0x18,0xeb,0x8f,0xe7,0x02,0x7c,0x00,0x6a, - 0xd6,0x6a,0xd1,0x68,0x25,0xea,0xd6,0x68,0x4f,0xc3,0x06,0x92,0x18,0x8f,0xe6,0x02, - 0x18,0xe7,0x8f,0x31,0x38,0x38,0x39,0x3c,0x3c,0xd6,0x6a,0x4f,0x05,0x8f,0xec,0xa2, - 0xdd,0x91,0xec,0x98,0xdd,0x8f,0xce,0x06,0x92,0xd6,0x68,0x3a,0xd6,0x91,0xe7,0x00, - 0xd6,0x68,0x4f,0xc3,0x06,0x92,0x8f,0xd6,0x92,0xe7,0x01,0xd6,0x8f,0xe7,0x02,0xd6, - 0x90,0xe7,0x03,0x3c,0xd6,0x6a,0x4f,0x8f,0xe6,0x93,0x38,0xe7,0x04,0x7c,0x00,0x6a, - 0xd6,0x68,0xcb,0x05,0xd7,0x68,0x38,0x38,0x39,0x7f,0x01,0xb4,0xd6,0xc6,0xc5,0x3f, - 0x26,0x04,0x13,0xbd,0x3f,0x05,0xc6,0x01,0xf7,0x01,0xb4,0xf6,0x02,0x75,0x5a,0x26, - 0x05,0xc6,0x01,0xf7,0x01,0xb4,0x39,0xf6,0x01,0xb4,0x5a,0x26,0x17,0x13,0xe6,0x08, - 0x0a,0xbd,0xf7,0xed,0xbd,0xef,0x0d,0xbd,0xf7,0xd6,0x39,0xbd,0xf7,0xd6,0xbd,0xef, - 0x0d,0xbd,0xf7,0xed,0x39,0x3c,0x3c,0x5f,0xd7,0x6a,0x7e,0x4b,0xcd,0x4f,0x05,0x05, - 0xc3,0x00,0x29,0xfd,0x03,0xd4,0x8f,0xe6,0x00,0x5a,0x27,0x09,0xe6,0x01,0xd1,0xc2, - 0x26,0x31,0xfe,0x03,0xd4,0xe6,0x01,0xe1,0x00,0x26,0x0e,0xe6,0x00,0x5a,0x26,0x04, - 0x6c,0x01,0x20,0x05,0xfe,0x03,0xd4,0x6a,0x00,0xe6,0x03,0xe1,0x02,0x26,0x14,0xd1, - 0xc0,0x24,0x05,0x6c,0x03,0xfe,0x03,0xd4,0xe6,0x02,0xc1,0x01,0x23,0x05,0x6a,0x02, - 0xfe,0x03,0xd4,0xe6,0x02,0x5a,0x27,0x09,0xe6,0x03,0xd1,0xc0,0x26,0x2e,0xfe,0x03, - 0xd4,0xe6,0x03,0xe1,0x02,0x26,0x0e,0xe6,0x02,0x5a,0x26,0x04,0x6c,0x03,0x20,0x05, - 0xfe,0x03,0xd4,0x6a,0x02,0xe6,0x01,0xe1,0x00,0x26,0x11,0xd1,0xc2,0x24,0x05,0x6c, - 0x01,0xfe,0x03,0xd4,0xe6,0x00,0xc1,0x01,0x23,0x02,0x6a,0x00,0x7c,0x00,0x6a,0xd6, - 0x6a,0xd1,0xc8,0x24,0x03,0x7e,0x4b,0x49,0x38,0x38,0x39,0x3c,0x3c,0x5f,0xd7,0x6a, - 0x7e,0x4c,0x86,0x4f,0x8f,0xe6,0x93,0x26,0x05,0xce,0x03,0x00,0x20,0x18,0xce,0x03, - 0x00,0xd6,0x6a,0x3a,0x6c,0x00,0xe6,0x00,0xc1,0x05,0x23,0x04,0xc6,0x05,0xe7,0x00, - 0x5a,0x26,0x0a,0xce,0x01,0x3e,0xd6,0x6a,0x3a,0x6f,0x00,0x20,0x38,0xe6,0x00,0xc1, - 0x02,0x26,0x32,0xd6,0x6a,0x58,0x58,0x4f,0xc3,0x01,0x5c,0x37,0x36,0xd6,0x6a,0x58, - 0x58,0x58,0x4f,0xc3,0x01,0xc2,0x8f,0xec,0x02,0x38,0xed,0x02,0xd6,0x6a,0x58,0x58, - 0x4f,0xc3,0x01,0x48,0x37,0x36,0xd6,0x6a,0x58,0x58,0x58,0x4f,0xc3,0x01,0xea,0x8f, - 0xec,0x02,0x38,0xed,0x02,0xce,0x01,0x39,0xd6,0x6a,0x3a,0xa6,0x00,0x27,0x36,0x4f, - 0x05,0x37,0x36,0xce,0x01,0x5c,0xd6,0x6a,0x58,0x58,0x3a,0xec,0x00,0x38,0xed,0xa2, - 0xd6,0x6a,0x4f,0x05,0x37,0x36,0xce,0x01,0x48,0xd6,0x6a,0x58,0x58,0x3a,0xec,0x00, - 0x38,0xed,0x98,0xd6,0x6a,0x4f,0x8f,0xc6,0x01,0xe7,0x93,0xce,0x01,0x43,0xd6,0x6a, - 0x3a,0xc6,0x1f,0xe7,0x00,0x7c,0x00,0x6a,0xd6,0x6a,0xd1,0xc5,0x24,0x03,0x7e,0x4b, - 0xdf,0x38,0x38,0x39,0x12,0xcb,0x20,0x03,0x7e,0x4d,0x68,0x5f,0xd7,0x6a,0x18,0xce, - 0x03,0xe7,0x7e,0x4d,0x61,0x4f,0x97,0x67,0x05,0x8f,0xec,0xa2,0xdd,0x91,0xec,0x98, - 0xdd,0x8f,0xd6,0x6a,0x86,0x03,0x3d,0xc3,0x03,0xd8,0xfd,0x03,0xd6,0x4f,0xd6,0x6a, - 0x8f,0xe6,0x93,0x26,0x09,0xbd,0x4d,0x69,0x18,0x6f,0x04,0x7e,0x4d,0x58,0x18,0x6d, - 0x04,0x26,0x0f,0x18,0xe7,0x04,0xdc,0x91,0x18,0xed,0x00,0xdc,0x8f,0x18,0xed,0x02, - 0x20,0x7a,0xfe,0x03,0xd6,0xe6,0x00,0xc1,0x01,0x26,0x0a,0xce,0x01,0x3e,0xd6,0x6a, - 0x3a,0x6f,0x00,0x20,0x67,0xdc,0x91,0x18,0xa3,0x00,0x2f,0x0a,0x05,0xb3,0x01,0x78, - 0x23,0x13,0x86,0x02,0x20,0x0d,0x43,0x53,0xc3,0x00,0x01,0x05,0xb3,0x01,0x78,0x23, - 0x04,0x86,0x01,0x97,0x67,0x96,0x67,0xfe,0x03,0xd6,0xe6,0x01,0x27,0x07,0x11,0x26, - 0x04,0xc6,0x01,0xe7,0x00,0xa7,0x01,0x7f,0x00,0x67,0xdc,0x8f,0x18,0xa3,0x02,0x2f, - 0x0a,0x05,0xb3,0x01,0x76,0x23,0x13,0x86,0x02,0x20,0x0d,0x43,0x53,0xc3,0x00,0x01, - 0x05,0xb3,0x01,0x76,0x23,0x04,0x86,0x01,0x97,0x67,0x96,0x67,0xfe,0x03,0xd6,0xe6, - 0x02,0x27,0x07,0x11,0x26,0x04,0xc6,0x01,0xe7,0x00,0xa7,0x02,0xc6,0x05,0x18,0x3a, - 0x7c,0x00,0x6a,0xd6,0x6a,0xd1,0xc5,0x24,0x03,0x7e,0x4c,0xa1,0x39,0x3c,0xfe,0x03, - 0xd6,0x6f,0x00,0x6f,0x01,0x6f,0x02,0x38,0x39,0xbd,0xd6,0x07,0xd6,0xb9,0x27,0x03, - 0x14,0xb9,0x80,0x39,0xd6,0x81,0x26,0x04,0xd6,0x68,0xd7,0x80,0xbd,0xd9,0x29,0x39, - 0xce,0x05,0xe0,0xcc,0x4d,0x80,0xed,0x68,0xcc,0x4d,0x75,0xed,0x5e,0xcc,0x49,0x12, - 0xed,0x48,0xcc,0x46,0xf8,0xed,0x06,0xcc,0x49,0x43,0xed,0x58,0xcc,0x47,0x6d,0xed, - 0x56,0xcc,0x47,0x6e,0xed,0x4e,0xcc,0x4d,0xd8,0xed,0x60,0xcc,0x49,0x0d,0xed,0x50, - 0xcc,0x4e,0x33,0xed,0x6e,0x39,0xbd,0xc4,0x92,0xce,0x06,0x92,0xcc,0x00,0x00,0xed, - 0x81,0xcc,0xe8,0x11,0xed,0x83,0xcc,0x10,0x10,0xed,0x85,0x39,0x3c,0x3c,0xd6,0xc8, - 0xd1,0xac,0x26,0x20,0xf6,0x02,0xfb,0xd1,0xac,0x27,0x08,0xd6,0xac,0xf7,0x02,0xfb, - 0x5f,0xd7,0xf4,0xd6,0xac,0x27,0x0b,0xd6,0xf4,0xc1,0xff,0x24,0x07,0x7c,0x00,0xf4, - 0x20,0x02,0xd7,0xf4,0xd6,0xc8,0x27,0x10,0xd6,0xac,0x27,0x0c,0xd6,0xc8,0xd1,0xac, - 0x27,0x06,0xd6,0xf4,0xc1,0x04,0x22,0x03,0x7e,0xf4,0x76,0xd6,0xad,0x27,0x04,0xd1, - 0xc8,0x27,0x07,0xd6,0xc8,0xd7,0xad,0x5f,0xd7,0xae,0x7e,0xf4,0xae,0xd6,0xac,0x37, - 0xbd,0xd6,0x93,0x33,0xd7,0xac,0x39,0xbd,0xf8,0xdb,0x10,0x4f,0x5f,0xfd,0x01,0x7e, - 0xd6,0x68,0x26,0x04,0xdc,0x7d,0x20,0x02,0xdc,0x7b,0xfd,0x01,0x80,0x86,0x09,0x27, - 0x0f,0x78,0x01,0xbc,0x79,0x01,0xbb,0x79,0x01,0xba,0x79,0x01,0xb9,0x4a,0x26,0xf1, - 0xdc,0x8d,0x6f,0x02,0x6f,0x03,0xed,0x0a,0xec,0x02,0xed,0x08,0xfc,0x01,0xb9,0xed, - 0x02,0xec,0x00,0xc3,0xff,0xf9,0x18,0x8f,0xfc,0x01,0xbb,0xbd,0xf9,0x9d,0x18,0xce, - 0x4f,0xb5,0xbd,0xfb,0xa9,0xdd,0x91,0x83,0x04,0x00,0x25,0x03,0x7e,0x4f,0x27,0xcc, - 0x04,0x00,0xed,0x0e,0x93,0x91,0xed,0x0c,0x83,0x01,0x00,0x22,0x1f,0xf6,0x02,0xf0, - 0x4f,0xed,0x0a,0xf6,0x02,0xed,0x18,0x8f,0xec,0x0c,0xbd,0xf9,0x08,0x3c,0xee,0x0a, - 0x02,0x8f,0x38,0xed,0x08,0xcc,0x04,0x00,0xa3,0x08,0x20,0x60,0xec,0x0c,0x83,0x02, - 0x00,0x22,0x2a,0xf6,0x02,0xf0,0x4f,0xed,0x0a,0xf6,0x02,0xee,0x18,0x8f,0xec,0x0c, - 0x83,0x01,0x00,0xbd,0xf9,0x08,0xed,0x08,0xb6,0x02,0xed,0x5f,0xe3,0x08,0x3c,0xee, - 0x0a,0x02,0x8f,0x38,0xed,0x06,0xcc,0x04,0x00,0xa3,0x06,0x20,0x2f,0xf6,0x02,0xf0, - 0x4f,0xed,0x0a,0xf6,0x02,0xef,0x18,0x8f,0xec,0x0c,0x83,0x02,0x00,0xbd,0xf9,0x08, - 0xed,0x08,0xb6,0x02,0xee,0x5f,0xed,0x06,0xb6,0x02,0xed,0xe3,0x06,0xe3,0x08,0x3c, - 0xee,0x0a,0x02,0x8f,0x38,0xed,0x04,0xcc,0x04,0x00,0xa3,0x04,0xdd,0x91,0xb3,0x01, - 0x80,0x22,0x03,0x7e,0x4f,0xb1,0x4f,0x5f,0x7e,0x4f,0xaf,0xfc,0x01,0x80,0x83,0x04, - 0x00,0x93,0x91,0x24,0xee,0xfc,0x01,0x80,0x83,0x04,0x00,0xed,0x0e,0xdc,0x91,0xa3, - 0x0e,0xed,0x0c,0x83,0x01,0x00,0x22,0x12,0xf6,0x02,0xf0,0x4f,0xed,0x0a,0xf6,0x02, - 0xed,0x18,0x8f,0xec,0x0c,0xbd,0xf9,0x08,0x20,0x44,0xec,0x0c,0x83,0x02,0x00,0x22, - 0x1b,0xf6,0x02,0xf0,0x4f,0xed,0x0a,0xf6,0x02,0xee,0x18,0x8f,0xec,0x0c,0x83,0x01, - 0x00,0xbd,0xf9,0x08,0xed,0x08,0xb6,0x02,0xed,0x5f,0x20,0x20,0xf6,0x02,0xf0,0x4f, - 0xed,0x0a,0xf6,0x02,0xef,0x18,0x8f,0xec,0x0c,0x83,0x02,0x00,0xbd,0xf9,0x08,0xed, - 0x08,0xb6,0x02,0xee,0x5f,0xed,0x06,0xb6,0x02,0xed,0xe3,0x06,0xe3,0x08,0x3c,0xee, - 0x0a,0x02,0x8f,0x38,0xe3,0x0e,0xdd,0x91,0xb3,0x01,0x80,0x25,0x08,0xfc,0x01,0x80, - 0x83,0x00,0x01,0xdd,0x91,0xae,0x00,0x38,0x39,0x00,0x00,0x01,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, -}; - -#endif diff --git a/drivers/input/touchscreen/gt811_ts.c b/drivers/input/touchscreen/gt811_ts.c deleted file mode 100755 index 1bb4e94602f8..000000000000 --- a/drivers/input/touchscreen/gt811_ts.c +++ /dev/null @@ -1,2135 +0,0 @@ -/* drivers/input/touchscreen/gt811.c - * - * Copyright (C) 2010 - 2011 Goodix, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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. - * - *Any problem,please contact andrew@goodix.com,+86 755-33338828 - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -//#include -//#include -//#include -#include -#include -#include -#include -#include "gt811_ts.h" -#include "gt811_firmware.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#ifdef CONFIG_RK_CONFIG -#include -#endif -#define TP_MODULE_NAME GOODIX_I2C_NAME -#ifdef CONFIG_RK_CONFIG - -enum { -#if defined(RK2928_SDK_DEFAULT_CONFIG) - DEF_EN = 1, - DEF_IRQ = 0x008003c7, - DEF_RST = 0X000003c3, -#elif defined(RK2926_V86_DEFAULT_CONFIG) - DEF_EN = 1, - DEF_IRQ = 0x008001b0, - DEF_RST = 0X000000d3, -#else - DEF_EN = 0, - DEF_IRQ = -1, - DEF_RST = -1, -#endif - DEF_I2C = 2, - DEF_ADDR = 0x5d, - DEF_X_MAX = 800, - DEF_Y_MAX = 480, -}; -static int en = DEF_EN; -module_param(en, int, 0644); - -static int irq = DEF_IRQ; -module_param(irq, int, 0644); -static int rst =DEF_RST; -module_param(rst, int, 0644); - -static int i2c = DEF_I2C; // i2c channel -module_param(i2c, int, 0644); -static int addr = DEF_ADDR; // i2c addr -module_param(addr, int, 0644); -static int x_max = DEF_X_MAX; -module_param(x_max, int, 0644); -static int y_max = DEF_Y_MAX; -module_param(y_max, int, 0644); - -static int tp_hw_init(void) -{ - int ret = 0; - - ret = gpio_request(get_port_config(irq).gpio, "tp_irq"); - if(ret < 0){ - printk("%s: gpio_request(irq gpio) failed\n", __func__); - return ret; - } - - ret = port_output_init(rst, 1, "tp_rst"); - if(ret < 0){ - printk("%s: port(rst) output init faild\n", __func__); - return ret; - } - mdelay(10); - port_output_off(rst); - mdelay(10); - port_output_on(rst); - msleep(300); - - return 0; -} -#include "rk_tp.c" -#endif - - - -static struct workqueue_struct *goodix_wq; -static const char *s3c_ts_name = "gt811_ts"; -//static struct point_queue finger_list; -struct i2c_client * i2c_connect_client = NULL; -int reset_pin = 0; -//EXPORT_SYMBOL(i2c_connect_client); -static struct proc_dir_entry *goodix_proc_entry; -static short goodix_read_version(struct gt811_ts_data *ts); -//static int tpd_button(struct gt811_ts_data *ts, unsigned int x, unsigned int y, unsigned int down); - -#ifdef CONFIG_HAS_EARLYSUSPEND -static void goodix_ts_early_suspend(struct early_suspend *h); -static void goodix_ts_late_resume(struct early_suspend *h); -int gt811_downloader( struct gt811_ts_data *ts, unsigned char * data); -#endif -//used by firmware update CRC -unsigned int oldcrc32 = 0xFFFFFFFF; -unsigned int crc32_table[256]; -unsigned int ulPolynomial = 0x04c11db7; - -unsigned int raw_data_ready = RAW_DATA_NON_ACTIVE; - -//#define DEBUG -#ifdef DEBUG -int sum = 0; -int access_count = 0; -int int_count = 0; -#endif -#define HAVE_TOUCH_KEY - //#define READ_KEY_VALUE - //#define READ_KEY_COOR - -#ifdef HAVE_TOUCH_KEY - const uint16_t touch_key_array[]={ - KEY_MENU, //MENU - KEY_HOMEPAGE, - KEY_BACK, - KEY_SEARCH - }; -#define MAX_KEY_NUM (sizeof(touch_key_array)/sizeof(touch_key_array[0])) -#endif - -/******************************************************* -Function: - Read data from the slave - Each read operation with two i2c_msg composition, for the first message sent from the machine address, - Article 2 reads the address used to send and retrieve data; each message sent before the start signal -Parameters: - client: i2c devices, including device address - buf [0]: The first byte to read Address - buf [1] ~ buf [len]: data buffer - len: the length of read data -return: - Execution messages -*********************************************************/ -/*Function as i2c_master_send */ -static int i2c_read_bytes(struct i2c_client *client, uint8_t *buf, int len) -{ - struct i2c_msg msgs[2]; - int ret=-1; - - msgs[0].flags=!I2C_M_RD; - msgs[0].addr=client->addr; - msgs[0].len=2; - msgs[0].buf=&buf[0]; - msgs[0].scl_rate=200000; - - msgs[1].flags=I2C_M_RD; - msgs[1].addr=client->addr; - msgs[1].len=len-2; - msgs[1].buf=&buf[2]; - msgs[1].scl_rate=200000; - - ret=i2c_transfer(client->adapter,msgs, 2); - return ret; -} - -/******************************************************* -Function: - Write data to a slave -Parameters: - client: i2c devices, including device address - buf [0]: The first byte of the write address - buf [1] ~ buf [len]: data buffer - len: data length -return: - Execution messages -*******************************************************/ -/*Function as i2c_master_send */ -static int i2c_write_bytes(struct i2c_client *client,uint8_t *data,int len) -{ - struct i2c_msg msg; - int ret=-1; - //发送设备地址 - msg.flags=!I2C_M_RD;//写消? msg.addr=client->addr; - msg.len=len; - msg.buf=data; - msg.scl_rate=200000; - msg.addr=client->addr; - - ret=i2c_transfer(client->adapter,&msg, 1); - return ret; -} - -/******************************************************* -Function: - Send a prefix command - -Parameters: - ts: client private data structure - -return: - Results of the implementation code, 0 for normal execution -*******************************************************/ -static int i2c_pre_cmd(struct gt811_ts_data *ts) -{ - int ret; - uint8_t pre_cmd_data[2]={0}; - pre_cmd_data[0]=0x0f; - pre_cmd_data[1]=0xff; - ret=i2c_write_bytes(ts->client,pre_cmd_data,2); - //msleep(2); - return ret; -} - -/******************************************************* -Function: - Send a suffix command - -Parameters: - ts: client private data structure - -return: - Results of the implementation code, 0 for normal execution -*******************************************************/ -static int i2c_end_cmd(struct gt811_ts_data *ts) -{ - int ret; - uint8_t end_cmd_data[2]={0}; - end_cmd_data[0]=0x80; - end_cmd_data[1]=0x00; - ret=i2c_write_bytes(ts->client,end_cmd_data,2); - //msleep(2); - return ret; -} - -/******************************************************************** - -*********************************************************************/ -#ifdef COOR_TO_KEY -static int list_key(s32 x_value, s32 y_value, u8* key) -{ - s32 i; - -#ifdef AREA_Y - if (y_value <= AREA_Y) -#else - if (x_value <= AREA_X) -#endif - { - return 0; - } - - for (i = 0; i < MAX_KEY_NUM; i++) - { - if (abs(key_center[i][x] - x_value) < KEY_X - && abs(key_center[i][y] - y_value) < KEY_Y) - { - (*key) |= (0x01<> 8; - config_info[61] = TOUCH_MAX_WIDTH & 0xff; - config_info[64] = TOUCH_MAX_HEIGHT >> 8; - config_info[63] = TOUCH_MAX_HEIGHT & 0xff; - - ret = i2c_write_bytes(ts->client, config_info, sizeof(config_info)/sizeof(config_info[0])); - if(ret < 0) - { - dev_info(&ts->client->dev, "GT811 Send config failed!\n"); - return ret; - } - ts->abs_y_max = (config_info[62]<<8) + config_info[61]; - ts->abs_x_max = (config_info[64]<<8) + config_info[63]; - ts->max_touch_num = config_info[60]; - ts->int_trigger_type = ((config_info[57]>>3)&0x01); - dev_info(&ts->client->dev, "GT811 init info:X_MAX=%d,Y_MAX=%d,TRIG_MODE=%s\n", - ts->abs_x_max, ts->abs_y_max, ts->int_trigger_type?"RISING EDGE":"FALLING EDGE"); - - return 0; -} - -/******************************************************* -FUNCTION: - Read gt811 IC Version -Argument: - ts: client -return: - 0:success - -1:error -*******************************************************/ -static short goodix_read_version(struct gt811_ts_data *ts) -{ - short ret; - uint8_t version_data[5]={0x07,0x17,0,0}; //store touchscreen version infomation - uint8_t version_data2[5]={0x07,0x17,0,0}; //store touchscreen version infomation - - char i = 0; - char cpf = 0; - memset(version_data, 0, 5); - version_data[0]=0x07; - version_data[1]=0x17; - - ret=i2c_read_bytes(ts->client, version_data, 4); - if (ret < 0) - return ret; - - for(i = 0;i < 10;i++) - { - i2c_read_bytes(ts->client, version_data2, 4); - if((version_data[2] !=version_data2[2])||(version_data[3] != version_data2[3])) - { - version_data[2] = version_data2[2]; - version_data[3] = version_data2[3]; - msleep(5); - break; - } - msleep(5); - cpf++; - } - - if(cpf == 10) - { - ts->version = (version_data[2]<<8)+version_data[3]; - dev_info(&ts->client->dev, "GT811 Verion:0x%04x\n", ts->version); - ret = 0; - } - else - { - dev_info(&ts->client->dev," Guitar Version Read Error: %d.%d\n",version_data[3],version_data[2]); - ts->version = 0xffff; - ret = -1; - } - - return ret; - -} -/******************start add by kuuga*******************/ -static void gt811_irq_enable(struct gt811_ts_data *ts) -{ - unsigned long irqflags; - spin_lock_irqsave(&ts->irq_lock, irqflags); - if (ts->irq_is_disable) - { - enable_irq(ts->irq); - ts->irq_is_disable = 0; - } - spin_unlock_irqrestore(&ts->irq_lock, irqflags); -} - -static void gt811_irq_disable(struct gt811_ts_data *ts) -{ - unsigned long irqflags; - spin_lock_irqsave(&ts->irq_lock, irqflags); - if (!ts->irq_is_disable) - { - disable_irq_nosync(ts->irq); - ts->irq_is_disable = 1; - } - spin_unlock_irqrestore(&ts->irq_lock, irqflags); -} - -/*****************end add by kuuga****************/ - -/******************************************************* -Function: - Touch-screen work function - Triggered by the interruption, to accept a set of coordinate data, - and then analyze the output parity -Parameters: - ts: client private data structure -return: - Results of the implementation code, 0 for normal execution -********************************************************/ -static void goodix_ts_work_func(struct work_struct *work) -{ - uint8_t point_data[READ_BYTES_NUM] = {READ_TOUCH_ADDR_H,READ_TOUCH_ADDR_L,0};//point_data[8*MAX_FINGER_NUM+2]={ 0 }; - uint8_t check_sum = 0; - uint8_t read_position = 0; - uint8_t track_id[MAX_FINGER_NUM]; - uint8_t point_index = 0; - uint8_t point_tmp = 0; - uint8_t point_count = 0; - uint16_t input_x = 0; - uint16_t input_y = 0; - uint8_t input_w = 0; - static uint8_t last_key = 0; - uint8_t finger = 0; - uint8_t key = 0; - unsigned int count = 0; - unsigned int position = 0; - int ret=-1; - int tmp = 0; - - struct gt811_ts_data *ts = container_of(work, struct gt811_ts_data, work); -#ifdef DEBUG - printk("int count :%d\n", ++int_count); - printk("ready?:%d\n", raw_data_ready); -#endif - if (RAW_DATA_ACTIVE == raw_data_ready) - { - raw_data_ready = RAW_DATA_READY; -#ifdef DEBUG - printk("ready!\n"); -#endif - } - -#ifndef INT_PORT -COORDINATE_POLL: -#endif - if( tmp > 9) - { - dev_info(&(ts->client->dev), "Because of transfer error,touchscreen stop working.\n"); - goto XFER_ERROR ; - } - - ret=i2c_read_bytes(ts->client, point_data, sizeof(point_data)/sizeof(point_data[0])); - if(ret <= 0) - { - dev_err(&(ts->client->dev),"I2C transfer error. Number:%d\n ", ret); - ts->bad_data = 1; - tmp ++; - ts->retry++; -#ifndef INT_PORT - goto COORDINATE_POLL; -#else - goto XFER_ERROR; -#endif - } -#if 0 - for(count=0;count<(sizeof(point_data)/sizeof(point_data[0])); count++) - { - printk("[%2d]:0x%2x", count, point_data[count]); - if((count+1)%10==0)printk("\n"); - } - printk("\n"); -#endif - if(point_data[2]&0x20) - { - if(point_data[3]==0xF0) - { - gpio_direction_output(reset_pin, 0); - msleep(1); - // gpio_direction_input(reset_pin); - gpio_set_value(reset_pin,0); - msleep(100); - gpio_set_value(reset_pin,1); - msleep(100); - - goodix_init_panel(ts); - goto WORK_FUNC_END; - } - } - switch(point_data[2]& 0x1f) - { - case 0: - case 1: - for(count=2; count<9; count++) - check_sum += (int)point_data[count]; - read_position = 9; - break; - case 2: - case 3: - for(count=2; count<14;count++) - check_sum += (int)point_data[count]; - read_position = 14; - break; - default: //touch finger larger than 3 - for(count=2; count<35;count++) - check_sum += (int)point_data[count]; - read_position = 35; - } - if(check_sum != point_data[read_position]) - { - dev_info(&ts->client->dev, "coor chksum error!\n"); - goto XFER_ERROR; - } - - point_index = point_data[2]&0x1f; - point_tmp = point_index; - for(position=0; (position>= 1; - } - finger = point_count; - if(finger) - { - for(count=0; count ts->abs_x_max)||(TOUCH_MAX_WIDTH-input_x > ts->abs_y_max))continue; - input_mt_slot(ts->input_dev, track_id[count]); - //input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, false); - input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, true); - //printk("DOWN\n") -; ; - input_report_abs(ts->input_dev, ABS_MT_POSITION_X, input_y); - input_report_abs(ts->input_dev, ABS_MT_POSITION_Y, input_x); - input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, input_w); - //input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, input_w); - //input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, track_id[count]); - //input_mt_sync(ts->input_dev); - } - } - else - { - for(tmp=0; tmp< MAX_FINGER_NUM; tmp++) - { - //printk("tmp=%d\n", tmp); - input_mt_slot(ts->input_dev, tmp);//按序号上? //input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0); - input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, false); - } - //input_mt_sync(ts->input_dev); - } - - //input_report_key(ts->input_dev, BTN_TOUCH, finger > 0); - input_sync(ts->input_dev); - -#ifdef HAVE_TOUCH_KEY - key = point_data[3]&0x0F; - if((last_key != 0)||(key != 0)) - { - for(count = 0; count < MAX_KEY_NUM; count++) - { - //printk("####################input_report_key++++++++++++%d\n",key); - input_report_key(ts->input_dev, touch_key_array[count], !!(key&(0x01<use_irq) - gt811_irq_enable(ts); //KT ADD 1202 -#endif -} - -/******************************************************* -Function: - Response function timer - Triggered by a timer, scheduling the work function of the touch screen operation; after re-timing -Parameters: - timer: the timer function is associated -return: - Timer mode, HRTIMER_NORESTART that do not automatically restart -********************************************************/ -static enum hrtimer_restart goodix_ts_timer_func(struct hrtimer *timer) -{ - struct gt811_ts_data *ts = container_of(timer, struct gt811_ts_data, timer); - queue_work(goodix_wq, &ts->work); - hrtimer_start(&ts->timer, ktime_set(0, (POLL_TIME+6)*1000000), HRTIMER_MODE_REL); - return HRTIMER_NORESTART; -} - -/******************************************************* -Function: - Interrupt response function - Triggered by an interrupt, the scheduler runs the touch screen handler -********************************************************/ -static irqreturn_t goodix_ts_irq_handler(int irq, void *dev_id) -{ - struct gt811_ts_data *ts = dev_id; - -#ifndef STOP_IRQ_TYPE - gt811_irq_disable(ts); //KT ADD 1202 -#endif - //disable_irq_nosync(ts->client->irq); - queue_work(goodix_wq, &ts->work); - - return IRQ_HANDLED; -} - -/******************************************************* -Function: - Power management gt811, gt811 allowed to sleep or to wake up -Parameters: - on: 0 that enable sleep, wake up 1 -return: - Is set successfully, 0 for success - Error code: -1 for the i2c error, -2 for the GPIO error;-EINVAL on error as a parameter -********************************************************/ -static int goodix_ts_power(struct gt811_ts_data * ts, int on) -{ - int ret = -1; - - unsigned char i2c_control_buf[3] = {0x06,0x92,0x01}; //suspend cmd - -#ifdef INT_PORT - if(ts != NULL && !ts->use_irq) - return -2; -#endif - switch(on) - { - case 0: - ret = i2c_write_bytes(ts->client, i2c_control_buf, 3); - printk("ret++++++++++++++++= %d=\n",ret); - dev_info(&ts->client->dev, "Send suspend cmd\n"); - if(ret < 0) //failed - ret = 0; - return ret; - - case 1: - printk("++++ reset_pin: %d \n",reset_pin); - if(reset_pin > 0 ){ - gpio_direction_output(reset_pin,0); - msleep(1); - gpio_set_value(reset_pin,0); - msleep(100); - gpio_set_value(reset_pin,1); - msleep(100); - }else{ - msleep(1); - gpio_direction_output(irq_to_gpio(ts->client->irq), 0); - msleep(100); - gpio_direction_output(irq_to_gpio(ts->client->irq), 1); - msleep(100); - - unsigned int gpio = irq_to_gpio(ts->client->irq); - gpio_set_value(gpio, 0); - gpio_direction_input(gpio); - } - ret = 0; - return ret; - - default: - dev_info(&ts->client->dev, "%s: Cant't support this command.", s3c_ts_name); - return -EINVAL; - } - -} -/******************************************************* -Function: - Touch-screen detection function - Called when the registration drive (required for a corresponding client); - For IO, interrupts and other resources to apply; equipment registration; touch screen initialization, etc. -Parameters: - client: the device structure to be driven - id: device ID -return: - Results of the implementation code, 0 for normal execution -********************************************************/ -static int goodix_ts_probe(struct i2c_client *client, const struct i2c_device_id *id) -{ - int ret = 0; - int val_ret = 1; - int retry=0; - char test_data = 1; - char buf[2]={0}; //w++ - unsigned char read_data[2] = {0,0 }; - const char irq_table[2] = {IRQF_TRIGGER_FALLING,IRQF_TRIGGER_RISING}; - struct gt811_ts_data *ts; - // struct gt811_platform_data *811data = client->dev.platform_data; - struct goodix_platform_data *pdata; - dev_info(&client->dev,"Install gt811 driver.\n"); - dev_info(&client->dev,"Driver Release Date:2012-02-08\n"); - - if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) - { - dev_err(&client->dev, "Must have I2C_FUNC_I2C.\n"); - ret = -ENODEV; - goto err_check_functionality_failed; - } -#if 0 - ret=i2c_read_bytes(client, read_data, sizeof(read_data)/sizeof(read_data[0])); - if(ret <= 0) - { - dev_err(&client->dev, "Must have GT811.\n"); - goto err_check_functionality_failed; - } -#endif - - ts = kzalloc(sizeof(*ts), GFP_KERNEL); - if (ts == NULL) { - ret = -ENOMEM; - goto err_alloc_data_failed; - } - - i2c_connect_client = client; - ts->client = client; - i2c_set_clientdata(client, ts); - pdata = client->dev.platform_data; -#ifdef CONFIG_RK_CONFIG - tp_hw_init(); - reset_pin = get_port_config(rst).gpio; - client->irq = get_port_config(irq).gpio; -#else - if (pdata != NULL) - { - reset_pin = pdata->rest_pin; - - if (pdata->init_platform_hw) - { - pdata->init_platform_hw(); - } - - } -#endif -/* - gpio_free(SHUTDOWN_PORT); - ret = gpio_request(SHUTDOWN_PORT, "RESET_INT"); - if (ret < 0) - { - dev_err(&client->dev, "Failed to request RESET GPIO:%d, ERRNO:%d\n",(int)SHUTDOWN_PORT,ret); - goto err_gpio_request; - } - - rk29_mux_api_set(GPIO0D3_PWM_1_NAME,GPIO0D_GPIO0D3); - gpio_pull_updown(SHUTDOWN_PORT, 1); //set GPIO pull-up -*/ - for(retry=0;retry <= 10; retry++) - { - gpio_direction_output(reset_pin,0); - msleep(1); - // gpio_direction_input(reset_pin);//setinput means not ack so set the reset high - // msleep(100); - gpio_set_value(reset_pin,1); - msleep(100); - gpio_set_value(reset_pin,0); - msleep(100); - gpio_set_value(reset_pin,1); - msleep(100); - val_ret = gpio_get_value(reset_pin); - ret = i2c_write_bytes(client, &test_data, 1); - //ret =i2c_master_reg8_recv(client, 0x00, buf, 2, 200*1000);//i2c_write_bytes(client, &test_data, 1); //Test I2C connection. - if (ret == 1) - break; - dev_info(&client->dev, "GT811 I2C TEST FAILED!Please check the HARDWARE connect\n"); - } - - if(ret <= 0) - { - dev_err(&client->dev, "Warnning: I2C communication might be ERROR!\n"); - goto err_i2c_failed; - } - - INIT_WORK(&ts->work, goodix_ts_work_func); //init work_struct - -/////////////////////////////// UPDATE STEP 1 START///////////////////////////////////////////////////////////////// -#ifdef AUTO_UPDATE_GT811 //modify by andrew - msleep(20); - goodix_read_version(ts); - - ret = gt811_downloader( ts, goodix_gt811_firmware); - if(ret < 0) - { - dev_err(&client->dev, "Warnning: gt811 update might be ERROR!\n"); - //goto err_input_dev_alloc_failed; - } -#endif -///////////////////////////////UPDATE STEP 1 END//////////////////////////////////////////////////////////////// -/* -#ifdef INT_PORT - client->irq=TS_INT; //If not defined in client - if (client->irq) - { - gpio_free(INT_PORT); - ret = gpio_request(INT_PORT, "TS_INT"); //Request IO - if (ret < 0) - { - dev_err(&client->dev, "Failed to request GPIO:%d, ERRNO:%d\n",(int)INT_PORT,ret); - goto err_gpio_request_failed; - } - - gpio_pull_updown(INT_PORT, NULL); //ret > 0 ? - - - #ifndef STOP_IRQ_TYPE - ts->irq = TS_INT; //KT ADD 1202 - ts->irq_is_disable = 0; // enable irq - #endif - } -#endif -*/ -err_gpio_request_failed: - for(retry=0; retry<3; retry++) - { - ret=goodix_init_panel(ts); - msleep(2); - if(ret != 0) //Initiall failed - continue; - else - break; - } - if(ret != 0) - { - ts->bad_data=1; - goto err_init_godix_ts; - } - - ts->input_dev = input_allocate_device(); - if (ts->input_dev == NULL) - { - ret = -ENOMEM; - dev_dbg(&client->dev,"goodix_ts_probe: Failed to allocate input device\n"); - goto err_input_dev_alloc_failed; - } - - //ts->input_dev->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS) ; - //ts->input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); - //////ts->input_dev->absbit[0] = BIT(ABS_X) | BIT(ABS_Y) | BIT(ABS_PRESSURE); -#ifdef HAVE_TOUCH_KEY - for(retry = 0; retry < MAX_KEY_NUM; retry++) - { - input_set_capability(ts->input_dev,EV_KEY,touch_key_array[retry]); - } -#endif -/* - input_set_abs_params(ts->input_dev, ABS_X, 0, ts->abs_x_max, 0, 0); - input_set_abs_params(ts->input_dev, ABS_Y, 0, ts->abs_y_max, 0, 0); - input_set_abs_params(ts->input_dev, ABS_PRESSURE, 0, 255, 0, 0); -*/ -#ifdef GOODIX_MULTI_TOUCH - - __set_bit(INPUT_PROP_DIRECT, ts->input_dev->propbit); - __set_bit(EV_ABS, ts->input_dev->evbit); - - input_mt_init_slots(ts->input_dev, ts->max_touch_num); - input_set_abs_params(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); -#ifdef CONFIG_RK_CONFIG - input_set_abs_params(ts->input_dev, ABS_MT_POSITION_X, 0, x_max, 0, 0); - input_set_abs_params(ts->input_dev, ABS_MT_POSITION_Y, 0, y_max, 0, 0); -#else - input_set_abs_params(ts->input_dev, ABS_MT_POSITION_X, 0, ts->abs_x_max, 0, 0); - input_set_abs_params(ts->input_dev, ABS_MT_POSITION_Y, 0, ts->abs_y_max, 0, 0); -#endif - - -#endif - - sprintf(ts->phys, "input/ts"); - ts->input_dev->name = s3c_ts_name; - ts->input_dev->phys = ts->phys; - ts->input_dev->id.bustype = BUS_I2C; - ts->input_dev->id.vendor = 0xDEAD; - ts->input_dev->id.product = 0xBEEF; - ts->input_dev->id.version = 10427; //screen firmware version - - ret = input_register_device(ts->input_dev); - if (ret) { - dev_err(&client->dev,"Probe: Unable to register %s input device\n", ts->input_dev->name); - goto err_input_register_device_failed; - } - ts->bad_data = 0; - -#ifdef INT_PORT - ret = request_irq(gpio_to_irq(client->irq), goodix_ts_irq_handler ,irq_table[ts->int_trigger_type], - client->name, ts); - if (ret != 0) - { - dev_err(&client->dev,"Cannot allocate ts INT!ERRNO:%d\n", ret); - gpio_direction_input(client->irq); - gpio_free(client->irq); - goto err_init_godix_ts; - } - else - { - #ifndef STOP_IRQ_TYPE - gt811_irq_disable(ts); //KT ADD 1202 - //#define - // disable_irq(client->irq); - #endif - ts->use_irq = 1; - dev_dbg(&client->dev,"Reques EIRQ %d succesd on GPIO:%d\n",client->irq,client->irq); - } -#endif - - - if (!ts->use_irq) - { - hrtimer_init(&ts->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); - ts->timer.function = goodix_ts_timer_func; - hrtimer_start(&ts->timer, ktime_set(1, 0), HRTIMER_MODE_REL); - } - - if(ts->use_irq) - #ifndef STOP_IRQ_TYPE - gt811_irq_enable(ts); //KT ADD 1202 - //#elif - // enable_irq(client->irq); - #endif - - ts->power = goodix_ts_power; - - goodix_read_version(ts); - -#ifdef CONFIG_HAS_EARLYSUSPEND - ts->early_suspend.level = EARLY_SUSPEND_LEVEL_DISABLE_FB;//EARLY_SUSPEND_LEVEL_BLANK_SCREEN +1; - ts->early_suspend.suspend = goodix_ts_early_suspend; - ts->early_suspend.resume = goodix_ts_late_resume; - register_early_suspend(&ts->early_suspend); -#endif - -/////////////////////////////// UPDATE STEP 2 START ///////////////////////////////////////////////////////////////// -#ifdef CONFIG_TOUCHSCREEN_GOODIX_IAP - goodix_proc_entry = create_proc_entry("goodix-update", 0666, NULL); - if(goodix_proc_entry == NULL) - { - dev_info(&client->dev, "Couldn't create proc entry!\n"); - ret = -ENOMEM; - goto err_create_proc_entry; - } - else - { - dev_info(&client->dev, "Create proc entry success!\n"); - goodix_proc_entry->write_proc = goodix_update_write; - goodix_proc_entry->read_proc = goodix_update_read; - } -#endif -///////////////////////////////UPDATE STEP 2 END ///////////////////////////////////////////////////////////////// - dev_info(&client->dev,"Start %s in %s mode,Driver Modify Date:2012-01-05\n", - ts->input_dev->name, ts->use_irq ? "interrupt" : "polling"); - return 0; - -err_init_godix_ts: - i2c_end_cmd(ts); - if(ts->use_irq) - { - ts->use_irq = 0; - free_irq(gpio_to_irq(client->irq),ts); - #ifdef INT_PORT - gpio_direction_input(client->irq); - gpio_free(client->irq); - #endif - } - else - hrtimer_cancel(&ts->timer); - -err_input_register_device_failed: - input_free_device(ts->input_dev); - -err_input_dev_alloc_failed: - i2c_set_clientdata(client, NULL); -err_gpio_request: - gpio_free(reset_pin); -err_i2c_failed: - kfree(ts); -err_alloc_data_failed: -err_check_functionality_failed: -err_create_proc_entry: - return ret; -} - - -/******************************************************* -Function: - Drive the release of resources -Parameters: - client: the device structure -return: - Results of the implementation code, 0 for normal execution -********************************************************/ -static int goodix_ts_remove(struct i2c_client *client) -{ - struct gt811_ts_data *ts = i2c_get_clientdata(client); -#ifdef CONFIG_HAS_EARLYSUSPEND - unregister_early_suspend(&ts->early_suspend); -#endif -/////////////////////////////// UPDATE STEP 3 START///////////////////////////////////////////////////////////////// -#ifdef CONFIG_TOUCHSCREEN_GOODIX_IAP - remove_proc_entry("goodix-update", NULL); -#endif -/////////////////////////////////UPDATE STEP 3 END/////////////////////////////////////////////////////////////// - - if (ts && ts->use_irq) - { - #ifdef INT_PORT - gpio_direction_input(client->irq); - gpio_free(client->irq); - #endif - free_irq(gpio_to_irq(client->irq), ts); - } - else if(ts) - hrtimer_cancel(&ts->timer); - - dev_notice(&client->dev,"The driver is removing...\n"); - i2c_set_clientdata(client, NULL); - input_unregister_device(ts->input_dev); - kfree(ts); - return 0; -} - -//停用设备 -static int goodix_ts_suspend(struct i2c_client *client, pm_message_t mesg) -{ - int ret; - struct gt811_ts_data *ts = i2c_get_clientdata(client); - disable_irq(gpio_to_irq(client->irq)); - if (ts->power) - { - ret = ts->power(ts, 0); - printk("goodix_ts suspend >>>>>>>>>ret=%d \n",ret); - if (ret < 0) - printk(KERN_ERR "goodix_ts_suspend power on failed\n"); - } - return 0; -} -static int goodix_ts_resume(struct i2c_client *client) -{ - int ret; - struct gt811_ts_data *ts = i2c_get_clientdata(client); - - if (ts->power) { - ret = ts->power(ts, 1); - printk("resume >>>>>>>>>ret=%d",ret); - if (ret < 0) - printk(KERN_ERR "goodix_ts_resume power on failed\n"); - } - enable_irq(gpio_to_irq(client->irq)); - return 0; -} - -#ifdef CONFIG_HAS_EARLYSUSPEND -static void goodix_ts_early_suspend(struct early_suspend *h) -{ - struct gt811_ts_data *ts; - ts = container_of(h, struct gt811_ts_data, early_suspend); - goodix_ts_suspend(ts->client, PMSG_SUSPEND); -} - -static void goodix_ts_late_resume(struct early_suspend *h) -{ - struct gt811_ts_data *ts; - ts = container_of(h, struct gt811_ts_data, early_suspend); - goodix_ts_resume(ts->client); -} -#endif -/////////////////////////////// UPDATE STEP 4 START///////////////////////////////////////////////////////////////// -//******************************Begin of firmware update surpport******************************* -#ifdef CONFIG_TOUCHSCREEN_GOODIX_IAP -static struct file * update_file_open(char * path, mm_segment_t * old_fs_p) -{ - struct file * filp = NULL; - int errno = -1; - - filp = filp_open(path, O_RDONLY, 0644); - - if(!filp || IS_ERR(filp)) - { - if(!filp) - errno = -ENOENT; - else - errno = PTR_ERR(filp); - printk(KERN_ERR "The update file for Guitar open error.\n"); - return NULL; - } - *old_fs_p = get_fs(); - set_fs(get_ds()); - - filp->f_op->llseek(filp,0,0); - return filp ; -} - -static void update_file_close(struct file * filp, mm_segment_t old_fs) -{ - set_fs(old_fs); - if(filp) - filp_close(filp, NULL); -} -static int update_get_flen(char * path) -{ - struct file * file_ck = NULL; - mm_segment_t old_fs; - int length ; - - file_ck = update_file_open(path, &old_fs); - if(file_ck == NULL) - return 0; - - length = file_ck->f_op->llseek(file_ck, 0, SEEK_END); - //printk("File length: %d\n", length); - if(length < 0) - length = 0; - update_file_close(file_ck, old_fs); - return length; -} - -static int goodix_update_write(struct file *filp, const char __user *buff, unsigned long len, void *data) -{ - unsigned char cmd[120]; - int ret = -1; - int retry = 0; - static unsigned char update_path[60]; - struct gt811_ts_data *ts; - struct file * file_data = NULL; - mm_segment_t old_fs; - unsigned char *file_ptr = NULL; - unsigned int file_len; - - ts = i2c_get_clientdata(i2c_connect_client); - if(ts==NULL) - { - printk(KERN_INFO"goodix write to kernel via proc file!@@@@@@\n"); - return 0; - } - - //printk(KERN_INFO"goodix write to kernel via proc file!@@@@@@\n"); - if(copy_from_user(&cmd, buff, len)) - { - printk(KERN_INFO"goodix write to kernel via proc file!@@@@@@\n"); - return -EFAULT; - } - //printk(KERN_INFO"Write cmd is:%d,write len is:%ld\n",cmd[0], len); - switch(cmd[0]) - { - case APK_UPDATE_TP: - printk(KERN_INFO"Write cmd is:%d,cmd arg is:%s,write len is:%ld\n",cmd[0], &cmd[1], len); - memset(update_path, 0, 60); - strncpy(update_path, cmd+1, 60); - -#ifndef STOP_IRQ_TYPE - gt811_irq_disable(ts); //KT ADD 1202 -//#elif -// disable_irq(ts->client->irq); -#endif - file_data = update_file_open(update_path, &old_fs); - if(file_data == NULL) //file_data has been opened at the last time - { - dev_info(&ts->client->dev, "cannot open update file\n"); - return 0; - } - - file_len = update_get_flen(update_path); - dev_info(&ts->client->dev, "Update file length:%d\n", file_len); - file_ptr = (unsigned char*)vmalloc(file_len); - if(file_ptr==NULL) - { - dev_info(&ts->client->dev, "cannot malloc memory!\n"); - return 0; - } - - ret = file_data->f_op->read(file_data, file_ptr, file_len, &file_data->f_pos); - if(ret <= 0) - { - dev_info(&ts->client->dev, "read file data failed\n"); - return 0; - } - update_file_close(file_data, old_fs); - - ret = gt811_downloader(ts, file_ptr); - vfree(file_ptr); - if(ret < 0) - { - printk(KERN_INFO"Warnning: GT811 update might be ERROR!\n"); - return 0; - } - - // i2c_pre_cmd(ts); - - gpio_direction_output(reset_pin, 0); - msleep(5); - gpio_direction_input(reset_pin); - msleep(20); - for(retry=0; retry<3; retry++) - { - ret=goodix_init_panel(ts); - msleep(2); - if(ret != 0) //Initiall failed - { - dev_info(&ts->client->dev, "Init panel failed!\n"); - continue; - } - else - break; - - } - - // s3c_gpio_cfgpin(INT_PORT, INT_CFG); //Set IO port function - //gpio_direction_input(INT_PORT); -// s3c_gpio_setpull(INT_PORT, S3C_GPIO_PULL_UP); -// s3c_gpio_cfgpin(INT_PORT, INT_CFG); //Set IO port as interrupt port - //s3c_gpio_setpull(INT_PORT, S3C_GPIO_PULL_NONE); -// while(1); -#ifndef STOP_IRQ_TYPE - gt811_irq_enable(ts); //KT ADD 1202 -//#elif -// enable_irq(ts->client->irq); -#endif -// i2c_end_cmd(ts); - return 1; - - case APK_READ_FUN: //functional command - if(cmd[1] == CMD_READ_VER) - { - printk(KERN_INFO"Read version!\n"); - ts->read_mode = MODE_RD_VER; - } - else if(cmd[1] == CMD_READ_CFG) - { - printk(KERN_INFO"Read config info!\n"); - - ts->read_mode = MODE_RD_CFG; - } - else if (cmd[1] == CMD_READ_RAW) - { - printk(KERN_INFO"Read raw data!\n"); - - ts->read_mode = MODE_RD_RAW; - } - else if (cmd[1] == CMD_READ_CHIP_TYPE) - { - printk(KERN_INFO"Read chip type!\n"); - - ts->read_mode = MODE_RD_CHIP_TYPE; - } - return 1; - - case APK_WRITE_CFG: - printk(KERN_INFO"Begin write config info!Config length:%d\n",cmd[1]); - i2c_pre_cmd(ts); - ret = i2c_write_bytes(ts->client, cmd+2, cmd[1]+2); - i2c_end_cmd(ts); - if(ret != 1) - { - printk("Write Config failed!return:%d\n",ret); - return -1; - } - return 1; - - default: - return 0; - } - return 0; -} - -static int goodix_update_read( char *page, char **start, off_t off, int count, int *eof, void *data ) -{ - int ret = -1; - int len = 0; - int read_times = 0; - struct gt811_ts_data *ts; - - unsigned char read_data[360] = {80, }; - - ts = i2c_get_clientdata(i2c_connect_client); - if(ts==NULL) - return 0; - - printk("___READ__\n"); - if(ts->read_mode == MODE_RD_VER) //read version data - { - i2c_pre_cmd(ts); - ret = goodix_read_version(ts); - i2c_end_cmd(ts); - if(ret < 0) - { - printk(KERN_INFO"Read version data failed!\n"); - return 0; - } - - read_data[1] = (char)(ts->version&0xff); - read_data[0] = (char)((ts->version>>8)&0xff); - - memcpy(page, read_data, 2); - //*eof = 1; - return 2; - } - else if (ts->read_mode == MODE_RD_CHIP_TYPE) - { - page[0] = GT811; - return 1; - } - else if(ts->read_mode == MODE_RD_CFG) - { - - read_data[0] = 0x06; - read_data[1] = 0xa2; // cfg start address - printk("read config addr is:%x,%x\n", read_data[0],read_data[1]); - - len = 106; - i2c_pre_cmd(ts); - ret = i2c_read_bytes(ts->client, read_data, len+2); - i2c_end_cmd(ts); - if(ret <= 0) - { - printk(KERN_INFO"Read config info failed!\n"); - return 0; - } - - memcpy(page, read_data+2, len); - return len; - } - else if (ts->read_mode == MODE_RD_RAW) - { -#define TIMEOUT (-100) - int retry = 0; - if (raw_data_ready != RAW_DATA_READY) - { - raw_data_ready = RAW_DATA_ACTIVE; - } - -RETRY: - read_data[0] = 0x07; - read_data[1] = 0x11; - read_data[2] = 0x01; - - ret = i2c_write_bytes(ts->client, read_data, 3); - -#ifdef DEBUG - sum += read_times; - printk("count :%d\n", ++access_count); - printk("A total of try times:%d\n", sum); -#endif - - read_times = 0; - while (RAW_DATA_READY != raw_data_ready) - { - msleep(4); - - if (read_times++ > 10) - { - if (retry++ > 5) - { - return TIMEOUT; - } - goto RETRY; - } - } -#ifdef DEBUG - printk("read times:%d\n", read_times); -#endif - read_data[0] = 0x08; - read_data[1] = 0x80; // raw data address - - len = 160; - - // msleep(4); - - i2c_pre_cmd(ts); - ret = i2c_read_bytes(ts->client, read_data, len+2); - // i2c_end_cmd(ts); - - if(ret <= 0) - { - printk(KERN_INFO"Read raw data failed!\n"); - return 0; - } - memcpy(page, read_data+2, len); - - read_data[0] = 0x09; - read_data[1] = 0xC0; - // i2c_pre_cmd(ts); - ret = i2c_read_bytes(ts->client, read_data, len+2); - i2c_end_cmd(ts); - - if(ret <= 0) - { - printk(KERN_INFO"Read raw data failed!\n"); - return 0; - } - memcpy(&page[160], read_data+2, len); - -#ifdef DEBUG -//************** - for (i = 0; i < 300; i++) - { - printk("%6x", page[i]); - - if ((i+1) % 10 == 0) - { - printk("\n"); - } - } -//********************/ -#endif - raw_data_ready = RAW_DATA_NON_ACTIVE; - - return (2*len); - - } - return 0; -#endif -} -//******************************************************************************************** -static u8 is_equal( u8 *src , u8 *dst , int len ) -{ - int i; - -#if 0 - for( i = 0 ; i < len ; i++ ) - { - printk(KERN_INFO"[%02X:%02X]", src[i], dst[i]); - if((i+1)%10==0)printk("\n"); - } -#endif - - for( i = 0 ; i < len ; i++ ) - { - if ( src[i] != dst[i] ) - { - return 0; - } - } - - return 1; -} - -static u8 gt811_nvram_store( struct gt811_ts_data *ts ) -{ - int ret; - int i; - u8 inbuf[3] = {REG_NVRCS_H,REG_NVRCS_L,0}; - //u8 outbuf[3] = {}; - ret = i2c_read_bytes( ts->client, inbuf, 3 ); - - if ( ret < 0 ) - { - return 0; - } - - if ( ( inbuf[2] & BIT_NVRAM_LOCK ) == BIT_NVRAM_LOCK ) - { - return 0; - } - - inbuf[2] = (1<client, inbuf, 3 ); - - if ( ret < 0 ) - break; - } - - return ret; -} - -static u8 gt811_nvram_recall( struct gt811_ts_data *ts ) -{ - int ret; - u8 inbuf[3] = {REG_NVRCS_H,REG_NVRCS_L,0}; - - ret = i2c_read_bytes( ts->client, inbuf, 3 ); - - if ( ret < 0 ) - { - return 0; - } - - if ( ( inbuf[2]&BIT_NVRAM_LOCK) == BIT_NVRAM_LOCK ) - { - return 0; - } - - inbuf[2] = ( 1 << BIT_NVRAM_RECALL ); //recall command - ret = i2c_write_bytes( ts->client , inbuf, 3); - return ret; -} - -static int gt811_reset( struct gt811_ts_data *ts ) -{ - int ret = 1; - u8 retry; - - unsigned char outbuf[3] = {0,0xff,0}; - unsigned char inbuf[3] = {0,0xff,0}; - //outbuf[1] = 1; - - gpio_direction_output(reset_pin,0); - msleep(20); - gpio_direction_input(reset_pin); - msleep(100); - for(retry=0;retry < 80; retry++) - { - ret =i2c_write_bytes(ts->client, inbuf, 0); //Test I2C connection. - if (ret > 0) - { - msleep(10); - ret =i2c_read_bytes(ts->client, inbuf, 3); //Test I2C connection. - if (ret > 0) - { - if(inbuf[2] == 0x55) - { - ret =i2c_write_bytes(ts->client, outbuf, 3); - msleep(10); - break; - } - } - } - else - { - gpio_direction_output(reset_pin,0); - msleep(20); - gpio_direction_input(reset_pin); - msleep(20); - dev_info(&ts->client->dev, "i2c address failed\n"); - } - - } - dev_info(&ts->client->dev, "Detect address %0X\n", ts->client->addr); - //msleep(500); - return ret; -} - -static int gt811_reset2( struct gt811_ts_data *ts ) -{ - int ret = 1; - u8 retry; - - //unsigned char outbuf[3] = {0,0xff,0}; - unsigned char inbuf[3] = {0,0xff,0}; - //outbuf[1] = 1; - - gpio_direction_output(reset_pin,0); - msleep(20); - gpio_direction_input(reset_pin); - msleep(100); - for(retry=0;retry < 80; retry++) - { - ret =i2c_write_bytes(ts->client, inbuf, 0); //Test I2C connection. - if (ret > 0) - { - msleep(10); - ret =i2c_read_bytes(ts->client, inbuf, 3); //Test I2C connection. - if (ret > 0) - { - // if(inbuf[2] == 0x55) - // { - // ret =i2c_write_bytes(ts->client, outbuf, 3); - // msleep(10); - break; - // } - } - } - - } - dev_info(&ts->client->dev, "Detect address %0X\n", ts->client->addr); - //msleep(500); - return ret; -} -static int gt811_set_address_2( struct gt811_ts_data *ts ) -{ - unsigned char inbuf[3] = {0,0,0}; - int i; - - for ( i = 0 ; i < 12 ; i++ ) - { - if ( i2c_read_bytes( ts->client, inbuf, 3) ) - { - dev_info(&ts->client->dev, "Got response\n"); - return 1; - } - dev_info(&ts->client->dev, "wait for retry\n"); - msleep(50); - } - return 0; -} -static u8 gt811_update_firmware( u8 *nvram, u16 start_addr, u16 length, struct gt811_ts_data *ts) -{ - u8 ret,err,retry_time,i; - u16 cur_code_addr; - u16 cur_frame_num, total_frame_num, cur_frame_len; - u32 gt80x_update_rate; - - unsigned char i2c_data_buf[PACK_SIZE+2] = {0,}; - unsigned char i2c_chk_data_buf[PACK_SIZE+2] = {0,}; - - if( length > NVRAM_LEN - NVRAM_BOOT_SECTOR_LEN ) - { - dev_info(&ts->client->dev, "Fw length %d is bigger than limited length %d\n", length, NVRAM_LEN - NVRAM_BOOT_SECTOR_LEN ); - return 0; - } - - total_frame_num = ( length + PACK_SIZE - 1) / PACK_SIZE; - - //gt80x_update_sta = _UPDATING; - gt80x_update_rate = 0; - - for( cur_frame_num = 0 ; cur_frame_num < total_frame_num ; cur_frame_num++ ) - { - retry_time = 5; - - dev_info(&ts->client->dev, "PACK[%d]\n",cur_frame_num); - cur_code_addr = /*NVRAM_UPDATE_START_ADDR*/start_addr + cur_frame_num * PACK_SIZE; - i2c_data_buf[0] = (cur_code_addr>>8)&0xff; - i2c_data_buf[1] = cur_code_addr&0xff; - - i2c_chk_data_buf[0] = i2c_data_buf[0]; - i2c_chk_data_buf[1] = i2c_data_buf[1]; - - if( cur_frame_num == total_frame_num - 1 ) - { - cur_frame_len = length - cur_frame_num * PACK_SIZE; - } - else - { - cur_frame_len = PACK_SIZE; - } - - //strncpy(&i2c_data_buf[2], &nvram[cur_frame_num*PACK_SIZE], cur_frame_len); - for(i=0;iclient, i2c_data_buf, (cur_frame_len+2)); - if ( ret <= 0 ) - { - dev_info(&ts->client->dev, "write fail\n"); - err = 1; - } - - ret = i2c_read_bytes(ts->client, i2c_chk_data_buf, (cur_frame_len+2)); - // ret = gt811_i2c_read( guitar_i2c_address, cur_code_addr, inbuf, cur_frame_len); - if ( ret <= 0 ) - { - dev_info(&ts->client->dev, "read fail\n"); - err = 1; - } - - if( is_equal( &i2c_data_buf[2], &i2c_chk_data_buf[2], cur_frame_len ) == 0 ) - { - dev_info(&ts->client->dev, "not equal\n"); - err = 1; - } - - } while ( err == 1 && (--retry_time) > 0 ); - - if( err == 1 ) - { - break; - } - - gt80x_update_rate = ( cur_frame_num + 1 )*128/total_frame_num; - - } - - if( err == 1 ) - { - dev_info(&ts->client->dev, "write nvram fail\n"); - return 0; - } - - ret = gt811_nvram_store(ts); - - msleep( 20 ); - - if( ret == 0 ) - { - dev_info(&ts->client->dev, "nvram store fail\n"); - return 0; - } - - ret = gt811_nvram_recall(ts); - - msleep( 20 ); - - if( ret == 0 ) - { - dev_info(&ts->client->dev, "nvram recall fail\n"); - return 0; - } - - for ( cur_frame_num = 0 ; cur_frame_num < total_frame_num ; cur_frame_num++ ) // read out all the code - { - - cur_code_addr = NVRAM_UPDATE_START_ADDR + cur_frame_num*PACK_SIZE; - retry_time=5; - i2c_chk_data_buf[0] = (cur_code_addr>>8)&0xff; - i2c_chk_data_buf[1] = cur_code_addr&0xff; - - - if ( cur_frame_num == total_frame_num-1 ) - { - cur_frame_len = length - cur_frame_num*PACK_SIZE; - } - else - { - cur_frame_len = PACK_SIZE; - } - - do - { - err = 0; - //ret = gt811_i2c_read( guitar_i2c_address, cur_code_addr, inbuf, cur_frame_len); - ret = i2c_read_bytes(ts->client, i2c_chk_data_buf, (cur_frame_len+2)); - - if ( ret == 0 ) - { - err = 1; - } - - if( is_equal( &nvram[cur_frame_num*PACK_SIZE], &i2c_chk_data_buf[2], cur_frame_len ) == 0 ) - { - err = 1; - } - } while ( err == 1 && (--retry_time) > 0 ); - - if( err == 1 ) - { - break; - } - - gt80x_update_rate = 127 + ( cur_frame_num + 1 )*128/total_frame_num; - } - - gt80x_update_rate = 255; - //gt80x_update_sta = _UPDATECHKCODE; - - if( err == 1 ) - { - dev_info(&ts->client->dev, "nvram validate fail\n"); - return 0; - } - - return 1; -} - -static u8 gt811_update_proc( u8 *nvram, u16 start_addr , u16 length, struct gt811_ts_data *ts ) -{ - u8 ret; - u8 error = 0; - //struct tpd_info_t tpd_info; - GT811_SET_INT_PIN( ts->client->irq, 0 ); - msleep( 20 ); - ret = gt811_reset(ts); - if ( ret < 0 ) - { - error = 1; - dev_info(&ts->client->dev, "reset fail\n"); - goto end; - } - - ret = gt811_set_address_2( ts ); - if ( ret == 0 ) - { - error = 1; - dev_info(&ts->client->dev, "set address fail\n"); - goto end; - } - - ret = gt811_update_firmware( nvram, start_addr, length, ts); - if ( ret == 0 ) - { - error=1; - dev_info(&ts->client->dev, "firmware update fail\n"); - goto end; - } - -end: - GT811_SET_INT_PIN( ts->client->irq, 1 ); -// gpio_free(INT_PORT); - gpio_pull_updown(ts->client->irq, 0); - - msleep( 500 ); - ret = gt811_reset2(ts); - if ( ret < 0 ) - { - error=1; - dev_info(&ts->client->dev, "final reset fail\n"); - goto end; - } - if ( error == 1 ) - { - return 0; - } - -// i2c_pre_cmd(ts); - while(goodix_read_version(ts)<0); - -// i2c_end_cmd(ts); - return 1; -} - -u16 Little2BigEndian(u16 little_endian) -{ - u16 temp = 0; - temp = little_endian&0xff; - return (temp<<8)+((little_endian>>8)&0xff); -} - -int gt811_downloader( struct gt811_ts_data *ts, unsigned char * data) -{ - struct tpd_firmware_info_t *fw_info = (struct tpd_firmware_info_t *)data; - //int i; - //unsigned short checksum = 0; - //unsigned int checksum = 0; - unsigned int fw_checksum = 0; - //unsigned char fw_chip_type; - unsigned short fw_version; - unsigned short fw_start_addr; - unsigned short fw_length; - unsigned char *data_ptr; - //unsigned char *file_ptr = &(fw_info->chip_type); - int retry = 0,ret; - int err = 0; - unsigned char rd_buf[4] = {0}; - unsigned char *mandatory_base = "GOODIX"; - unsigned char rd_rom_version; - unsigned char rd_chip_type; - unsigned char rd_nvram_flag; - - //struct file * file_data = NULL; - //mm_segment_t old_fs; - //unsigned int rd_len; - //unsigned int file_len = 0; - //unsigned char i2c_data_buf[PACK_SIZE] = {0,}; - - rd_buf[0]=0x14; - rd_buf[1]=0x00; - rd_buf[2]=0x80; - ret = i2c_write_bytes(ts->client, rd_buf, 3); - if(ret<0) - { - dev_info(&ts->client->dev, "i2c write failed\n"); - goto exit_downloader; - } - rd_buf[0]=0x40; - rd_buf[1]=0x11; - ret = i2c_read_bytes(ts->client, rd_buf, 3); - if(ret<=0) - { - dev_info(&ts->client->dev, "i2c request failed!\n"); - goto exit_downloader; - } - rd_chip_type = rd_buf[2]; - rd_buf[0]=0xFB; - rd_buf[1]=0xED; - ret = i2c_read_bytes(ts->client, rd_buf, 3); - if(ret<=0) - { - dev_info(&ts->client->dev, "i2c read failed!\n"); - goto exit_downloader; - } - rd_rom_version = rd_buf[2]; - rd_buf[0]=0x06; - rd_buf[1]=0x94; - ret = i2c_read_bytes(ts->client, rd_buf, 3); - if(ret<=0) - { - dev_info(&ts->client->dev, "i2c read failed!\n"); - goto exit_downloader; - } - rd_nvram_flag = rd_buf[2]; - - fw_version = Little2BigEndian(fw_info->version); - fw_start_addr = Little2BigEndian(fw_info->start_addr); - fw_length = Little2BigEndian(fw_info->length); - data_ptr = &(fw_info->data); - - dev_info(&ts->client->dev,"chip_type=0x%02x\n", fw_info->chip_type); - dev_info(&ts->client->dev,"version=0x%04x\n", fw_version); - dev_info(&ts->client->dev,"rom_version=0x%02x\n",fw_info->rom_version); - dev_info(&ts->client->dev,"start_addr=0x%04x\n",fw_start_addr); - dev_info(&ts->client->dev,"file_size=0x%04x\n",fw_length); - fw_checksum = ((u32)fw_info->checksum[0]<<16) + ((u32)fw_info->checksum[1]<<8) + ((u32)fw_info->checksum[2]); - dev_info(&ts->client->dev,"fw_checksum=0x%06x\n",fw_checksum); - dev_info(&ts->client->dev,"%s\n", __func__ ); - dev_info(&ts->client->dev,"current version 0x%04X, target verion 0x%04X\n", ts->version, fw_version ); - -//chk_chip_type: - if(rd_chip_type!=fw_info->chip_type) - { - dev_info(&ts->client->dev, "Chip type not match,exit downloader\n"); - goto exit_downloader; - } - -//chk_mask_version: - if(!rd_rom_version) - { - if(fw_info->rom_version!=0x45) - { - dev_info(&ts->client->dev, "Rom version not match,exit downloader\n"); - goto exit_downloader; - } - dev_info(&ts->client->dev, "Rom version E.\n"); - goto chk_fw_version; - } - else if(rd_rom_version!=fw_info->rom_version); - { - dev_info(&ts->client->dev, "Rom version not match,exidownloader\n"); - goto exit_downloader; - } - dev_info(&ts->client->dev, "Rom version %c\n",rd_rom_version); - -//chk_nvram: - if(rd_nvram_flag==0x55) - { - dev_info(&ts->client->dev, "NVRAM correct!\n"); - goto chk_fw_version; - } - else if(rd_nvram_flag==0xAA) - { - dev_info(&ts->client->dev, "NVRAM incorrect!Need update.\n"); - goto begin_upgrade; - } - else - { - dev_info(&ts->client->dev, "NVRAM other error![0x694]=0x%02x\n", rd_nvram_flag); - goto begin_upgrade; - } -chk_fw_version: -// ts->version -= 1; //test by andrew - if( ts->version >= fw_version ) // current low byte higher than back-up low byte - { - dev_info(&ts->client->dev, "Fw verison not match.\n"); - goto chk_mandatory_upgrade; - } - dev_info(&ts->client->dev,"Need to upgrade\n"); - goto begin_upgrade; -chk_mandatory_upgrade: -// dev_info(&ts->client->dev, "%s\n", mandatory_base); -// dev_info(&ts->client->dev, "%s\n", fw_info->mandatory_flag); - ret = memcmp(mandatory_base, fw_info->mandatory_flag, 6); - if(ret) - { - dev_info(&ts->client->dev,"Not meet mandatory upgrade,exit downloader!ret:%d\n", ret); - goto exit_downloader; - } - dev_info(&ts->client->dev, "Mandatory upgrade!\n"); -begin_upgrade: - dev_info(&ts->client->dev, "Begin upgrade!\n"); - // goto exit_downloader; - dev_info(&ts->client->dev,"STEP_0:\n"); - - - dev_info(&ts->client->dev, "STEP_1:\n"); - err = -1; - while( retry < 3 ) - { -// ret = gt811_update_proc( data_ptr,fw_start_addr, fw_length, ts); - if(ret == 1) - { - err = 1; - break; - } - retry++; - } - -exit_downloader: - //mt_set_gpio_mode(GPIO_CTP_EINT_PIN, GPIO_CTP_EINT_PIN_M_EINT); - // mt_set_gpio_out(GPIO_CTP_EN_PIN, GPIO_OUT_ONE); - // gpio_direction_output(INT_PORT,1); - // msleep(1); - gpio_free(ts->client->irq); - gpio_pull_updown(ts->client->irq, 0); - return err; - -} -//******************************End of firmware update surpport******************************* -/////////////////////////////// UPDATE STEP 4 END ///////////////////////////////////////////////////////////////// - -//可用于该驱动?设备名—设备ID 列表 -//only one client -static const struct i2c_device_id goodix_ts_id[] = { - { GOODIX_I2C_NAME, 0 }, - { } -}; - -//设备驱动结构? -static struct i2c_driver goodix_ts_driver = { - .probe = goodix_ts_probe, - .remove = goodix_ts_remove, -#ifndef CONFIG_HAS_EARLYSUSPEND - .suspend = goodix_ts_suspend, - .resume = goodix_ts_resume, -#endif - .id_table = goodix_ts_id, - .driver = { - .name = GOODIX_I2C_NAME, - .owner = THIS_MODULE, - }, -}; - -/******************************************************* -功能? 驱动加载函数 -return? 执行结果码,0表示正常执行 -********************************************************/ -static int __init goodix_ts_init(void) -{ - int ret; - -#ifdef CONFIG_RK_CONFIG - ret = tp_board_init(); - - if(ret < 0) - return ret; -#endif - goodix_wq = create_workqueue("goodix_wq"); //create a work queue and worker thread - if (!goodix_wq) { - printk(KERN_ALERT "creat workqueue faiked\n"); - return -ENOMEM; - - } - ret=i2c_add_driver(&goodix_ts_driver); - return ret; -} - -/******************************************************* -功能? 驱动卸载函数 -参数? client:设备结构体 -********************************************************/ -static void __exit goodix_ts_exit(void) -{ - printk(KERN_ALERT "Touchscreen driver of guitar exited.\n"); - i2c_del_driver(&goodix_ts_driver); - if (goodix_wq) - destroy_workqueue(goodix_wq); //release our work queue -} - -late_initcall_sync(goodix_ts_init); //最后初始化驱动felix -module_exit(goodix_ts_exit); - -MODULE_DESCRIPTION("Goodix Touchscreen Driver"); -MODULE_LICENSE("GPL"); - diff --git a/drivers/input/touchscreen/gt811_ts.h b/drivers/input/touchscreen/gt811_ts.h deleted file mode 100755 index 4801259dba9c..000000000000 --- a/drivers/input/touchscreen/gt811_ts.h +++ /dev/null @@ -1,281 +0,0 @@ -/* drivers/input/touchscreen/gt811.h - * - * Copyright (C) 2010 - 2011 Goodix, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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. - * - *Any problem,please contact andrew@goodix.com,+86 755-33338828 - * - */ - -#ifndef _LINUX_GT811_H -#define _LINUX_GT811_H - -#include -#include -#include -#include - -//*************************TouchScreen Work Part***************************** -#define GOODIX_I2C_NAME "gt811_ts" -#define GT801_PLUS -#define GT801_NUVOTON -#define GUITAR_UPDATE_STATE 0x02 - -//define resolution of the touchscreen -#define TOUCH_MAX_HEIGHT 800 -#define TOUCH_MAX_WIDTH 480 -//#define STOP_IRQ_TYPE // if define then no stop irq in irq_handle kuuga add 1202S -#define REFRESH 0 //0~0x64 Scan rate = 10000/(100+REFRESH)//define resolution of the LCD - -#if 0 -#define SHUTDOWN_PORT RK2928_PIN3_PC3 -#endif - -#define INT_PORT - -#if 0 -#ifdef INT_PORT - #define TS_INT gpio_to_irq(INT_PORT) //Interrupt Number,EINT18(119) -// #define INT_CFG S3C_GPIO_SFN(3) //IO configer as EINT -#else - #define TS_INT 0 -#endif -#endif - -/////////////////////////////// UPDATE STEP 5 START ///////////////////////////////////////////////////////////////// -#define TPD_CHIP_VERSION_C_FIRMWARE_BASE 0x5A -#define TPD_CHIP_VERSION_D1_FIRMWARE_BASE 0x7A -#define TPD_CHIP_VERSION_E_FIRMWARE_BASE 0x9A -#define TPD_CHIP_VERSION_D2_FIRMWARE_BASE 0xBA - - -/////////////////////////////// UPDATE STEP 5 END ///////////////////////////////////////////////////////////////// - -#define FLAG_UP 0 -#define FLAG_DOWN 1 -//set GT801 PLUS trigger mode,ֻ01 -//#define INT_TRIGGER 1 // 1=rising 0=falling -#define POLL_TIME 10 //actual query spacing interval:POLL_TIME+6 - -#define GOODIX_MULTI_TOUCH -#ifdef GOODIX_MULTI_TOUCH - #define MAX_FINGER_NUM 5 -#else - #define MAX_FINGER_NUM 1 -#endif - -#if defined(INT_PORT) - #if MAX_FINGER_NUM <= 3 - #define READ_BYTES_NUM 2+2+MAX_FINGER_NUM*5 - #elif MAX_FINGER_NUM == 4 - #define READ_BYTES_NUM 2+28 - #elif MAX_FINGER_NUM == 5 - #define READ_BYTES_NUM 2+34 - #endif -#else - #define READ_BYTES_NUM 2+34 -#endif - -#define swap(x, y) do { typeof(x) z = x; x = y; y = z; } while (0) - -#define READ_TOUCH_ADDR_H 0x07 -#define READ_TOUCH_ADDR_L 0x21 //GT811 0x721 -#define READ_KEY_ADDR_H 0x07 -#define READ_KEY_ADDR_L 0x21 -#define READ_COOR_ADDR_H 0x07 -#define READ_COOR_ADDR_L 0x22 -#define READ_ID_ADDR_H 0x00 -#define READ_ID_ADDR_L 0xff -//****************************ģ****************************************** - -//****************************************************************************** -struct gt811_ts_data { - uint16_t addr; - uint8_t bad_data; - struct i2c_client *client; - struct input_dev *input_dev; - int use_reset; //use RESET flag - int use_irq; //use EINT flag - int read_mode; //read moudle mode,20110221 by andrew - struct hrtimer timer; - struct work_struct work; - char phys[32]; - int retry; - int irq; - spinlock_t irq_lock; //add by kuuga - int irq_is_disable; /* 0: irq enable */ //add by kuuga - uint16_t abs_x_max; - uint16_t abs_y_max; - uint8_t max_touch_num; - uint8_t int_trigger_type; - uint8_t btn_state; // key states -/////////////////////////////// UPDATE STEP 6 START ///////////////////////////////////////////////////////////////// - unsigned int version; -/////////////////////////////// UPDATE STEP 6 END ///////////////////////////////////////////////////////////////// - - struct early_suspend early_suspend; - int (*power)(struct gt811_ts_data * ts, int on); -}; - -//*****************************End of Part I ********************************* - -//*************************Touchkey Surpport Part***************************** -/*#define HAVE_TOUCH_KEY -//#define READ_KEY_VALUE -//#define READ_KEY_COOR - -#ifdef HAVE_TOUCH_KEY - const uint16_t toucher_key_array[]={ - KEY_MENU, //MENU - KEY_HOME, - KEY_BACK, - KEY_SEARCH - }; - #define MAX_KEY_NUM (sizeof(toucher_key_array)/sizeof(toucher_key_array[0])) -#endif -*/ -//#define COOR_TO_KEY - #ifdef COOR_TO_KEY - - #define KEY_X 40 - #define KEY_Y 20 - #if 0 - #define AREA_X 0 - #else - #define AREA_Y 800 - #endif - - enum {x, y}; - s32 key_center[MAX_KEY_NUM][2] = { - - {48,840},{124,840},{208,840},{282,840} - - }; - - #endif - -//*****************************End of Part II********************************* - -/////////////////////////////// UPDATE STEP 7 START ///////////////////////////////////////////////////////////////// -//*************************Firmware Update part******************************* -//#define AUTO_UPDATE_GT811 - -#define CONFIG_TOUCHSCREEN_GOODIX_IAP -#ifdef CONFIG_TOUCHSCREEN_GOODIX_IAP -static int goodix_update_write(struct file *filp, const char __user *buff, unsigned long len, void *data); -static int goodix_update_read( char *page, char **start, off_t off, int count, int *eof, void *data ); - -#define PACK_SIZE 64 //update file package size -//#define MAX_TIMEOUT 30000 //update time out conut -//#define MAX_I2C_RETRIES 10 //i2c retry times - -//write cmd -#define APK_UPDATE_TP 1 -#define APK_READ_FUN 10 -#define APK_WRITE_CFG 11 - -//fun cmd -//#define CMD_DISABLE_TP 0 -//#define CMD_ENABLE_TP 1 -#define CMD_READ_VER 2 -#define CMD_READ_RAW 3 -#define CMD_READ_DIF 4 -#define CMD_READ_CFG 5 -#define CMD_READ_CHIP_TYPE 6 -//#define CMD_SYS_REBOOT 101 - -//read mode -#define MODE_RD_VER 1 -#define MODE_RD_RAW 2 -#define MODE_RD_DIF 3 -#define MODE_RD_CFG 4 -#define MODE_RD_CHIP_TYPE 5 - -#if 0 -struct tpd_firmware_info_t -{ - int magic_number_1; - int magic_number_2; - unsigned short version; - unsigned short length; - unsigned short checksum; - unsigned char data; -}; -#else -#pragma pack(1) -struct tpd_firmware_info_t -{ - unsigned char chip_type; - unsigned short version; - unsigned char rom_version; - unsigned char reserved[3]; - unsigned short start_addr; - unsigned short length; - unsigned char checksum[3]; - unsigned char mandatory_flag[6]; - unsigned char data; -}; -#pragma pack() -#endif - -#define NVRAM_LEN 0x0FF0 // nvram total space -#define NVRAM_BOOT_SECTOR_LEN 0x0100 // boot sector -#define NVRAM_UPDATE_START_ADDR 0x4100 - -#define BIT_NVRAM_STROE 0 -#define BIT_NVRAM_RECALL 1 -#define BIT_NVRAM_LOCK 2 -#define REG_NVRCS_H 0X12 -#define REG_NVRCS_L 0X01 -#define GT811_SET_INT_PIN( gpio, level ) gpio_direction_output(gpio, level) //null macro now -#endif -//*****************************End of Part III******************************** -/////////////////////////////// UPDATE STEP 7 END ///////////////////////////////////////////////////////////////// - -struct gt811_platform_data { - uint32_t version; /* Use this entry for panels with */ - u16 model; /* 801. */ - bool swap_xy; /* swap x and y axes */ - u16 x_min, x_max; - u16 y_min, y_max; - bool x_reverse, y_reverse; - int (*get_pendown_state)(void); - int (*init_platform_hw)(void); - int (*platform_sleep)(void); - int (*platform_wakeup)(void); - void (*exit_platform_hw)(void); - int gpio_reset; - bool gpio_reset_active_low; - - - //reservation -}; - -#define RAW_DATA_READY 1 -#define RAW_DATA_NON_ACTIVE 0xffffffff -#define RAW_DATA_ACTIVE 0 - - -enum CHIP_TYPE -{ - GT800 = 1, - GT800PLUS, - GT800PLUS3, - GT816, - GT811, - GT8105, - GT8110, - GT818PLUS -}; - - -#endif /* _LINUX_GOODIX_TOUCH_H */ diff --git a/drivers/input/touchscreen/gt818_ts.c b/drivers/input/touchscreen/gt818_ts.c deleted file mode 100644 index 857607e8c182..000000000000 --- a/drivers/input/touchscreen/gt818_ts.c +++ /dev/null @@ -1,856 +0,0 @@ -/* drivers/input/touchscreen/gt818_ts.c - * - * Copyright (C) 2011 Rockcip, 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. - * - * Author: hhb@rock-chips.com - * Date: 2011.06.20 - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "gt818_ts.h" - - - -#if !defined(GT801_PLUS) && !defined(GT801_NUVOTON) -#error The code does not match this touchscreen. -#endif - -static struct workqueue_struct *goodix_wq; - -static const char *gt818_ts_name = "Goodix Capacitive TouchScreen"; - -//static struct point_queue finger_list; - -struct i2c_client * i2c_connect_client = NULL; - -//EXPORT_SYMBOL(i2c_connect_client); - -#ifdef CONFIG_HAS_EARLYSUSPEND -static void goodix_ts_early_suspend(struct early_suspend *h); -static void goodix_ts_late_resume(struct early_suspend *h); -#endif - -#ifdef HAVE_TOUCH_KEY - const uint16_t gt818_key_array[]={ - KEY_MENU, - KEY_HOME, - KEY_BACK, - KEY_SEARCH - }; - #define MAX_KEY_NUM (sizeof(gt818_key_array)/sizeof(gt818_key_array[0])) -#endif - -unsigned int last_x[MAX_FINGER_NUM + 1]= {0}; -unsigned int last_y[MAX_FINGER_NUM + 1]= {0}; - - -/*Function as i2c_master_send */ -static int i2c_read_bytes(struct i2c_client *client, u8 *buf, int len) -{ - struct i2c_msg msgs[2]; - int ret = -1; - - msgs[0].addr = client->addr; - msgs[0].flags = client->flags; - msgs[0].len = 2; - msgs[0].buf = &buf[0]; - msgs[0].scl_rate = GT818_I2C_SCL; - msgs[0].udelay = client->udelay; - - msgs[1].addr = client->addr; - msgs[1].flags = client->flags | I2C_M_RD; - msgs[1].len = len-2; - msgs[1].buf = &buf[2]; - msgs[1].scl_rate = GT818_I2C_SCL; - msgs[1].udelay = client->udelay; - - ret = i2c_transfer(client->adapter, msgs, 2); - if(ret < 0) - printk("%s:i2c_transfer fail =%d\n",__func__, ret); - - return ret; -} - -/*Function as i2c_master_send */ -static int i2c_write_bytes(struct i2c_client *client,u8 *data,int len) -{ - struct i2c_msg msg; - int ret = -1; - - msg.addr = client->addr; - msg.flags = client->flags; - msg.len = len; - msg.buf = data; - msg.scl_rate = GT818_I2C_SCL; - msg.udelay = client->udelay; - - ret = i2c_transfer(client->adapter, &msg, 1); - if(ret < 0) - printk("%s:i2c_transfer fail =%d\n",__func__, ret); - - return ret; -} - - -static int i2c_pre_cmd(struct gt818_ts_data *ts) -{ - int ret; - u8 pre_cmd_data[2] = {0}; - pre_cmd_data[0] = 0x0f; - pre_cmd_data[1] = 0xff; - ret = i2c_write_bytes(ts->client,pre_cmd_data,2); - udelay(20); - return ret; -} - - -static int i2c_end_cmd(struct gt818_ts_data *ts) -{ - int ret; - u8 end_cmd_data[2] = {0}; - end_cmd_data[0] = 0x80; - end_cmd_data[1] = 0x00; - ret = i2c_write_bytes(ts->client,end_cmd_data,2); - udelay(20); - return ret; -} - - - -static int goodix_init_panel(struct gt818_ts_data *ts) -{ - int ret = -1; - int i = 0; -#if 1 - u8 config_info[] = { - 0x06,0xA2, - 0x00,0x02,0x04,0x06,0x08,0x0A,0x0C,0x0E, - 0x10,0x12,0x00,0x00,0x10,0x00,0x20,0x00, - 0x30,0x00,0x40,0x00,0x50,0x00,0x60,0x00, - 0xE0,0x00,0xD0,0x00,0xC0,0x00,0xB0,0x00, - 0xA0,0x00,0x90,0x00,0x80,0x00,0x70,0x00, - 0xF0,0x00,0x13,0x13,0x90,0x90,0x90,0x27, - 0x27,0x27,0x0F,0x0E,0x0A,0x40,0x30,0x01, - 0x03,0x00,MAX_FINGER_NUM,0x00,0x14,0xFA,0x1B,0x00, - 0x00,0x66,0x5A,0x6A,0x5E,0x00,0x00,0x05, - 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x14,0x10,0xEF,0x03,0x00,0x00,0x00,0x00, - 0x00,0x00,0x20,0x40,0x70,0x90,0x0F,0x40, - 0x30,0x3C,0x28,0x00,0x00,0x00,0x00,0x00, - 0x00,0x01 - }; -#endif - u8 read_config_info[sizeof(config_info)] = {0}; - read_config_info[0] = 0x06; - read_config_info[1] = 0xa2; - - ret = i2c_write_bytes(ts->client, config_info, (sizeof(config_info)/sizeof(config_info[0]))); - if (ret < 0) { - printk("config gt818 fail\n"); - return ret; - } - - ret = i2c_read_bytes(ts->client, read_config_info, (sizeof(config_info)/sizeof(config_info[0]))); - if (ret < 0){ - printk("read gt818 config fail\n"); - return ret; - } - - for(i = 2; i < 106; i++){ - if(read_config_info[i] != config_info[i]){ - printk("write gt818 config error\n"); - ret = -1; - return ret; - } - } - msleep(10); - return 0; - -} - -static int goodix_read_version(struct gt818_ts_data *ts) -{ - int ret; - u8 version_data[5] = {0}; //store touchscreen version infomation - memset(version_data, 0, 5); - version_data[0] = 0x07; - version_data[1] = 0x17; - msleep(2); - ret = i2c_read_bytes(ts->client, version_data, 4); - if (ret < 0) - return ret; - dev_info(&ts->client->dev," Guitar Version: %d.%d\n",version_data[3],version_data[2]); - return 0; - -} - - - -static void goodix_ts_work_func(struct work_struct *work) -{ - u8 touch_status[8*MAX_FINGER_NUM + 18] = {READ_TOUCH_ADDR_H, READ_TOUCH_ADDR_L, 0}; - u8 *key_value = NULL; - u8 *point_data = NULL; - static u8 finger_last[MAX_FINGER_NUM + 1]={0}; - u8 finger_current[MAX_FINGER_NUM + 1] = {0}; - u8 coor_data[6*MAX_FINGER_NUM] = {0}; - static u8 last_key = 0; - - u8 finger = 0; - u8 key = 0; - unsigned int count = 0; - unsigned int position = 0; - int temp = 0; - int x = 0, y = 0 , pressure; - - u16 *coor_point; - - int syn_flag = 0; - - struct gt818_ts_data *ts = container_of(work, struct gt818_ts_data, work); - - i2c_pre_cmd(ts); - i2c_read_bytes(ts->client, touch_status, sizeof(touch_status)/sizeof(touch_status[0])); - i2c_end_cmd(ts); - - //judge whether the data is ready - if((touch_status[2] & 0x30) != 0x20) - { - printk("%s:DATA_NO_READY\n", __func__); - goto DATA_NO_READY; - } - //judge whether it is large area touch - if(touch_status[13] & 0x0f) - { - goto DATA_NO_READY; - } - - ts->bad_data = 0; - finger = touch_status[2] & 0x07; - key_value = touch_status + 15; - key = key_value[2] & 0x0f; - - if(finger > 0) - { - point_data = key_value + 3; - - for(position = 0; position < (finger*8); position += 8) - { - temp = point_data[position]; - //printk("track:%d\n", temp); - if(temp < (MAX_FINGER_NUM + 1)) - { - finger_current[temp] = 1; - for(count = 0; count < 6; count++) - { - coor_data[(temp - 1) * 6 + count] = point_data[position+1+count]; - } - } - else - { - //dev_err(&(ts->client->dev),"Track Id error:%d\n ",); - ts->bad_data = 1; - ts->retry++; - goto XFER_ERROR; - } - } - - } - - else - { - for(position = 1; position < MAX_FINGER_NUM+1; position++) - { - finger_current[position] = 0; - } - } - - coor_point = (u16 *)coor_data; - - for(position = 1; position < MAX_FINGER_NUM + 1; position++) - { - if((finger_current[position] == 0) && (finger_last[position] != 0)) - { - //printk("<<<<<<<<<<<<<<<<<<<%s:positon:%d (%d,%d)\n", __func__, position,last_x,last_y); - //printk("<<<%d , %d ",finger_current[position],finger_last[position]); - //input_mt_slot(ts->input_dev, position); - //input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, true); - //input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0); - //input_report_abs(ts->input_dev, ABS_MT_POSITION_X, last_x[position]); - //input_report_abs(ts->input_dev, ABS_MT_POSITION_Y, last_y[position]); - //input_report_abs(ts->input_dev, ABS_MT_PRESSURE, 100); - //input_mt_sync(ts->input_dev); - input_mt_slot(ts->input_dev, position); - input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, false); - syn_flag = 1; - } - else if(finger_current[position]) - { - x = (*(coor_point+3*(position-1)))*SCREEN_MAX_WIDTH/(TOUCH_MAX_WIDTH); - y = (*(coor_point+3*(position-1)+1))*SCREEN_MAX_HEIGHT/(TOUCH_MAX_HEIGHT); - pressure = (*(coor_point+3*(position-1)+2)); - if(x < SCREEN_MAX_WIDTH){ - x = SCREEN_MAX_WIDTH - x; - } - - if(y < SCREEN_MAX_HEIGHT){ - // y = SCREEN_MAX_HEIGHT-y; - } - - //printk(">>>>>>>>>>>>>>>>>%s:positon:%d (%d,%d)\n", __func__, position,x,y); - input_mt_slot(ts->input_dev, position); - input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, true); - input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, 1); - input_report_abs(ts->input_dev, ABS_MT_PRESSURE, pressure); - input_report_abs(ts->input_dev, ABS_MT_POSITION_X, x); - input_report_abs(ts->input_dev, ABS_MT_POSITION_Y, y); - - last_x[position] = x; - last_y[position] = y; - //input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, pressure); - //input_mt_sync(ts->input_dev); - syn_flag = 1; - } - -} -input_sync(ts->input_dev); - - - -#ifdef HAVE_TOUCH_KEY - if((last_key == 0) && (key == 0)){ - goto NO_KEY_PRESS; - } - else{ - syn_flag = 1; - switch(key){ - case 1: - key = 4; - break; - case 2: - key = 3; - break; - case 4: - key = 2; - break; - case 8: - key = 1; - break; - default: - key = 0; - break; - } - if(key != 0){ - input_report_key(ts->input_dev, gt818_key_array[key - 1], 1); - } - else{ - input_report_key(ts->input_dev, gt818_key_array[last_key - 1], 0); - } - last_key = key; - } - -#endif - - -NO_KEY_PRESS: - if(syn_flag){ - input_sync(ts->input_dev); - } - - for(position = 1; position < MAX_FINGER_NUM + 1; position++) - { - finger_last[position] = finger_current[position]; - } - -DATA_NO_READY: -XFER_ERROR: -// i2c_end_cmd(ts); - if(ts->use_irq) - enable_irq(ts->client->irq); - -} -#if 0 -static int test_suspend_resume(struct gt818_ts_data *ts){ - while(1){ - ts->power(ts, 0); - msleep(5000); - ts->power(ts, 1); - msleep(5000); - } - return 0; -} -#endif - -static enum hrtimer_restart goodix_ts_timer_func(struct hrtimer *timer) -{ - struct gt818_ts_data *ts = container_of(timer, struct gt818_ts_data, timer); - queue_work(goodix_wq, &ts->work); - hrtimer_start(&ts->timer, ktime_set(0, (POLL_TIME+6)*1000000), HRTIMER_MODE_REL); - return HRTIMER_NORESTART; -} - - -static irqreturn_t goodix_ts_irq_handler(int irq, void *dev_id) -{ - struct gt818_ts_data *ts = dev_id; - disable_irq_nosync(ts->client->irq); - queue_work(goodix_wq, &ts->work); - return IRQ_HANDLED; -} - -static int goodix_ts_power(struct gt818_ts_data * ts, int on) -{ - int ret = -1; - struct gt818_platform_data *pdata = ts->client->dev.platform_data; - unsigned char i2c_control_buf[3] = {0x06,0x92,0x01}; //suspend cmd - if(ts != NULL && !ts->use_irq) - return -2; - switch(on) - { - case 0: - i2c_pre_cmd(ts); - // set the io port high level to avoid level change which might stop gt818 from sleeping - gpio_direction_output(pdata->gpio_reset, 1); - gpio_direction_output(pdata->gpio_pendown, 1); - msleep(5); - ret = i2c_write_bytes(ts->client, i2c_control_buf, 3); - if(ret < 0) - { - printk(KERN_INFO"**gt818 suspend fail**\n"); - } - else - { - //printk(KERN_INFO"**gt818 suspend**\n"); - ret = 0; - } -// i2c_end_cmd(ts); - return ret; - - case 1: - - gpio_pull_updown(pdata->gpio_pendown, 1); - gpio_direction_output(pdata->gpio_pendown, 0); - msleep(1); - gpio_direction_output(pdata->gpio_pendown, 1); - msleep(1); - gpio_direction_input(pdata->gpio_pendown); - gpio_pull_updown(pdata->gpio_pendown, 0); - -/* - msleep(2); - gpio_pull_updown(pdata->gpio_reset, 1); - gpio_direction_output(pdata->gpio_reset, 0); - msleep(2); - gpio_direction_input(pdata->gpio_reset); - gpio_pull_updown(pdata->gpio_reset, 0); - msleep(30); -*/ - msleep(1); - ret = i2c_pre_cmd(ts); - //printk(KERN_INFO"**gt818 reusme**\n"); - ret = i2c_end_cmd(ts); - - return ret; - - default: - printk(KERN_DEBUG "%s: Cant't support this command.", gt818_ts_name); - return -EINVAL; - } - -} - - -static int goodix_ts_probe(struct i2c_client *client, const struct i2c_device_id *id) -{ - int ret = 0; - int retry=0; - struct gt818_ts_data *ts; - - struct gt818_platform_data *pdata; - dev_info(&client->dev,"Install touch driver.\n"); - printk("gt818: Install touch driver.\n"); - //Check I2C function - if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) - { - dev_err(&client->dev, "Must have 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; - } - - i2c_connect_client = client; //used by Guitar_Update - pdata = client->dev.platform_data; - ts->client = client; - i2c_set_clientdata(client, ts); - - //init int and reset ports - ret = gpio_request(pdata->gpio_pendown, "TS_INT"); //Request IO - if (ret){ - dev_err(&client->dev, "Failed to request GPIO:%d, ERRNO:%d\n",(int)pdata->gpio_pendown, ret); - goto err_gpio_request_failed; - } - rk29_mux_api_set(pdata->pendown_iomux_name, pdata->pendown_iomux_mode); - gpio_direction_input(pdata->gpio_pendown); - gpio_pull_updown(pdata->gpio_pendown, 0); - - ret = gpio_request(pdata->gpio_reset, "gt818_resetPin"); - if(ret){ - dev_err(&client->dev, "failed to request resetPin GPIO%d\n", pdata->gpio_reset); - goto err_gpio_request_failed; - } - rk29_mux_api_set(pdata->resetpin_iomux_name, pdata->resetpin_iomux_mode); - -#if 1 - for(retry = 0; retry < 4; retry++) - { - gpio_pull_updown(pdata->gpio_reset, 1); - gpio_direction_output(pdata->gpio_reset, 0); - msleep(1); //delay at least 1ms - gpio_direction_input(pdata->gpio_reset); - gpio_pull_updown(pdata->gpio_reset, 0); - msleep(25); //delay at least 20ms - ret = i2c_pre_cmd(ts); - if (ret > 0) - break; - msleep(50); - } - - if(ret <= 0) - { - dev_err(&client->dev, "Warnning: I2C communication might be ERROR!\n"); - goto err_i2c_failed; - } - -#endif - - for(retry = 0; retry < 3; retry++) - { - ret = goodix_init_panel(ts); - - dev_info(&client->dev,"the config ret is :%d\n", ret); - msleep(20); - if(ret < 0) //Initiall failed - continue; - else - break; - } - - if(ret < 0) { - ts->bad_data = 1; - goto err_init_godix_ts; - } - - goodix_read_version(ts); - - - INIT_WORK(&ts->work, goodix_ts_work_func); //init work_struct - ts->input_dev = input_allocate_device(); - if (ts->input_dev == NULL) { - ret = -ENOMEM; - dev_dbg(&client->dev,"goodix_ts_probe: Failed to allocate input device\n"); - goto err_input_dev_alloc_failed; - } - - //ts->input_dev->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS) ; - //ts->input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); - //ts->input_dev->absbit[0] = BIT_MASK(ABS_MT_POSITION_X) | BIT_MASK(ABS_MT_POSITION_Y) | - // BIT_MASK(ABS_MT_TOUCH_MAJOR) | BIT_MASK(ABS_MT_WIDTH_MAJOR); // for android - - -#ifdef HAVE_TOUCH_KEY - for(retry = 0; retry < MAX_KEY_NUM; retry++) - { - input_set_capability(ts->input_dev, EV_KEY, gt818_key_array[retry]); - } -#endif - - snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&client->dev)); - snprintf(ts->name, sizeof(ts->name), "gt818-touchscreen"); - - ts->input_dev->name = "gt818_ts";//ts->name; - ts->input_dev->phys = ts->phys; - ts->input_dev->dev.parent = &client->dev; - ts->input_dev->id.bustype = BUS_I2C; - ts->input_dev->id.vendor = 0xDEAD; - ts->input_dev->id.product = 0xBEEF; - ts->input_dev->id.version = 10427; //screen firmware version - - __set_bit(INPUT_PROP_DIRECT, ts->input_dev->propbit); - __set_bit(EV_ABS, ts->input_dev->evbit); -#ifdef GOODIX_MULTI_TOUCH - input_mt_init_slots(ts->input_dev, MAX_FINGER_NUM); - //input_set_abs_params(ts->input_dev, ABS_MT_WIDTH_MAJOR, 0, 255, 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_POSITION_X, 0, SCREEN_MAX_WIDTH, 0, 0); - input_set_abs_params(ts->input_dev, ABS_MT_POSITION_Y, 0, SCREEN_MAX_HEIGHT, 0, 0); - //input_set_abs_params(ts->input_dev, ABS_MT_TRACKING_ID, 0, MAX_FINGER_NUM, 0, 0); - input_set_abs_params(ts->input_dev, ABS_MT_PRESSURE, 0, 255, 0, 0); -#else - input_set_abs_params(ts->input_dev, ABS_X, 0, SCREEN_MAX_HEIGHT, 0, 0); - input_set_abs_params(ts->input_dev, ABS_Y, 0, SCREEN_MAX_WIDTH, 0, 0); - input_set_abs_params(ts->input_dev, ABS_PRESSURE, 0, 255, 0, 0); -#endif - - ret = input_register_device(ts->input_dev); - if (ret) { - dev_err(&client->dev,"Probe: Unable to register %s input device\n", ts->input_dev->name); - goto err_input_register_device_failed; - } - ts->bad_data = 0; -// 16finger_list.length = 0; - - client->irq = gpio_to_irq(pdata->gpio_pendown); //If not defined in client - if (client->irq) - { - - #if INT_TRIGGER==0 - #define GT801_PLUS_IRQ_TYPE IRQ_TYPE_EDGE_RISING - #elif INT_TRIGGER==1 - #define GT801_PLUS_IRQ_TYPE IRQ_TYPE_EDGE_FALLING - #elif INT_TRIGGER==2 - #define GT801_PLUS_IRQ_TYPE IRQ_TYPE_LEVEL_LOW - #elif INT_TRIGGER==3 - #define GT801_PLUS_IRQ_TYPE IRQ_TYPE_LEVEL_HIGH - #endif - - ret = request_irq(client->irq, goodix_ts_irq_handler, GT801_PLUS_IRQ_TYPE, - client->name, ts); - if (ret != 0) { - dev_err(&client->dev,"Cannot allocate ts INT!ERRNO:%d\n", ret); - gpio_direction_input(pdata->gpio_pendown); - gpio_free(pdata->gpio_pendown); - goto err_gpio_request_failed; - } - else - { - disable_irq(client->irq); - ts->use_irq = 1; - dev_dbg(&client->dev,"Reques EIRQ %d succesd on GPIO:%d\n", client->irq, pdata->gpio_pendown); - } - } - -err_gpio_request_failed: - ts->power = goodix_ts_power; -#ifdef CONFIG_HAS_EARLYSUSPEND - ts->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; - ts->early_suspend.suspend = goodix_ts_early_suspend; - ts->early_suspend.resume = goodix_ts_late_resume; - register_early_suspend(&ts->early_suspend); -#endif - dev_info(&client->dev,"Start %s in %s mode\n", - ts->input_dev->name, ts->use_irq ? "interrupt" : "polling"); - - if (ts->use_irq) - { - enable_irq(client->irq); - } - else - { - hrtimer_init(&ts->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); - ts->timer.function = goodix_ts_timer_func; - hrtimer_start(&ts->timer, ktime_set(1, 0), HRTIMER_MODE_REL); - } - - i2c_end_cmd(ts); - return 0; - -err_init_godix_ts: - i2c_end_cmd(ts); - if(ts->use_irq) - { - ts->use_irq = 0; - free_irq(client->irq,ts); - gpio_direction_input(pdata->gpio_pendown); - gpio_free(pdata->gpio_pendown); - } - else - hrtimer_cancel(&ts->timer); - -err_input_register_device_failed: - input_free_device(ts->input_dev); - -err_input_dev_alloc_failed: - i2c_set_clientdata(client, NULL); -err_i2c_failed: - kfree(ts); -err_alloc_data_failed: -err_check_functionality_failed: - return ret; -} - - -static int goodix_ts_remove(struct i2c_client *client) -{ - struct gt818_ts_data *ts = i2c_get_clientdata(client); - struct gt818_platform_data *pdata = client->dev.platform_data; - -#ifdef CONFIG_HAS_EARLYSUSPEND - unregister_early_suspend(&ts->early_suspend); -#endif -#ifdef CONFIG_TOUCHSCREEN_GOODIX_IAP - remove_proc_entry("goodix-update", NULL); -#endif - if (ts && ts->use_irq) - { - gpio_direction_input(pdata->gpio_pendown); - gpio_free(pdata->gpio_pendown); - free_irq(client->irq, ts); - } - else if(ts) - hrtimer_cancel(&ts->timer); - - dev_notice(&client->dev,"The driver is removing...\n"); - i2c_set_clientdata(client, NULL); - input_unregister_device(ts->input_dev); - kfree(ts); - return 0; -} - - -static int goodix_ts_suspend(struct i2c_client *client, pm_message_t mesg) -{ - int ret; - struct gt818_ts_data *ts = i2c_get_clientdata(client); - - if (ts->use_irq) - disable_irq(client->irq); - else - hrtimer_cancel(&ts->timer); - //ret = cancel_work_sync(&ts->work); - //if(ret && ts->use_irq) - //enable_irq(client->irq); - if (ts->power) { - ret = ts->power(ts, 0); - if (ret < 0) - printk(KERN_ERR "goodix_ts_resume power off failed\n"); - } - return 0; -} - - -static int goodix_ts_resume(struct i2c_client *client) -{ - int ret; - struct gt818_ts_data *ts = i2c_get_clientdata(client); - - if (ts->power) { - ret = ts->power(ts, 1); - if (ret < 0) - printk(KERN_ERR "goodix_ts_resume power on failed\n"); - } - - if (ts->use_irq) - enable_irq(client->irq); - else - hrtimer_start(&ts->timer, ktime_set(1, 0), HRTIMER_MODE_REL); - - return 0; -} - -#ifdef CONFIG_HAS_EARLYSUSPEND -static void goodix_ts_early_suspend(struct early_suspend *h) -{ - struct gt818_ts_data *ts; - ts = container_of(h, struct gt818_ts_data, early_suspend); - goodix_ts_suspend(ts->client, PMSG_SUSPEND); -} - -static void goodix_ts_late_resume(struct early_suspend *h) -{ - struct gt818_ts_data *ts; - ts = container_of(h, struct gt818_ts_data, early_suspend); - goodix_ts_resume(ts->client); -} -#endif - - -//only one client -static const struct i2c_device_id goodix_ts_id[] = { - { GOODIX_I2C_NAME, 0 }, - { } -}; - - -static struct i2c_driver goodix_ts_driver = { - .probe = goodix_ts_probe, - .remove = goodix_ts_remove, -#ifndef CONFIG_HAS_EARLYSUSPEND - .suspend = goodix_ts_suspend, - .resume = goodix_ts_resume, -#endif - .id_table = goodix_ts_id, - .driver = { - .name = GOODIX_I2C_NAME, - .owner = THIS_MODULE, - }, -}; - - -static int __devinit goodix_ts_init(void) -{ - int ret; - goodix_wq = create_singlethread_workqueue("goodix_wq"); //create a work queue and worker thread - if (!goodix_wq) { - printk(KERN_ALERT "creat workqueue faiked\n"); - return -ENOMEM; - } - ret = i2c_add_driver(&goodix_ts_driver); - return ret; -} - - -static void __exit goodix_ts_exit(void) -{ - printk(KERN_ALERT "Touchscreen driver of guitar exited.\n"); - i2c_del_driver(&goodix_ts_driver); - if (goodix_wq) - destroy_workqueue(goodix_wq); //release our work queue -} - -late_initcall(goodix_ts_init); -module_exit(goodix_ts_exit); - -MODULE_DESCRIPTION("Goodix Touchscreen Driver"); -MODULE_AUTHOR("hhb@rock-chips.com"); -MODULE_LICENSE("GPL"); - diff --git a/drivers/input/touchscreen/gt818_ts.h b/drivers/input/touchscreen/gt818_ts.h deleted file mode 100644 index ecdc4a0612be..000000000000 --- a/drivers/input/touchscreen/gt818_ts.h +++ /dev/null @@ -1,120 +0,0 @@ -/* drivers/input/touchscreen/gt818_ts.h - * - * Copyright (C) 2011 Rockcip, 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. - * - * Author: hhb@rock-chips.com - * Date: 2011.06.20 - */ - -#ifndef _LINUX_GOODIX_TOUCH_H -#define _LINUX_GOODIX_TOUCH_H - -#include -#include -#include -#include - - -//*************************TouchScreen Work Part***************************** -#define GOODIX_I2C_NAME "gt818_ts" -#define GT801_PLUS -#define GT801_NUVOTON -#define GUITAR_UPDATE_STATE 0x02 -#define GT818_I2C_SCL 400*1000 - -//define resolution of the touchscreen -#define TOUCH_MAX_HEIGHT 7168 -#define TOUCH_MAX_WIDTH 5120 - -//define resolution of the LCD -#define SCREEN_MAX_HEIGHT 800 -#define SCREEN_MAX_WIDTH 480 - - - -#define SHUTDOWN_PORT pdata->gpio_reset //SHUTDOWN�ܽź� -#define INT_PORT pdata->gpio_pendown - -#ifdef INT_PORT - #define TS_INT gpio_to_irq(INT_PORT) //Interrupt Number -#else - #define TS_INT 0 -#endif - -#define HAVE_TOUCH_KEY - - -#define FLAG_UP 0 -#define FLAG_DOWN 1 -//set GT801 PLUS trigger mode,ֻ������0��1 -#define INT_TRIGGER 1 -#define POLL_TIME 10 //actual query spacing interval:POLL_TIME+6 - -#define GOODIX_MULTI_TOUCH -#ifdef GOODIX_MULTI_TOUCH - #define MAX_FINGER_NUM 2 -#else - #define MAX_FINGER_NUM 1 -#endif - -#define READ_TOUCH_ADDR_H 0x07 -#define READ_TOUCH_ADDR_L 0x12 -#define READ_KEY_ADDR_H 0x07 -#define READ_KEY_ADDR_L 0x21 -#define READ_COOR_ADDR_H 0x07 -#define READ_COOR_ADDR_L 0x22 -#define READ_ID_ADDR_H 0x00 -#define READ_ID_ADDR_L 0xff - - -#define IOMUX_NAME_SIZE 48 -struct gt818_platform_data { - - u16 model; /* 818. */ - bool swap_xy; /* swap x and y axes */ - u16 x_min, x_max; - u16 y_min, y_max; - int gpio_reset; - int gpio_reset_active_low; - int gpio_pendown; /* the GPIO used to decide the pendown */ - - char pendown_iomux_name[IOMUX_NAME_SIZE]; - char resetpin_iomux_name[IOMUX_NAME_SIZE]; - int pendown_iomux_mode; - int resetpin_iomux_mode; - - int (*get_pendown_state)(void); -}; - - -struct gt818_ts_data { - - - u16 addr; - u8 bad_data; - struct i2c_client *client; - struct input_dev *input_dev; - int use_reset; //use RESET flag - int use_irq; //use EINT flag - int read_mode; //read moudle mode,20110221 by andrew - struct hrtimer timer; - struct work_struct work; - char phys[32]; - char name[32]; - int retry; - struct early_suspend early_suspend; - int (*power)(struct gt818_ts_data * ts, int on); -}; - - - -#endif /* _LINUX_GOODIX_TOUCH_H */ diff --git a/drivers/input/touchscreen/gt819.c b/drivers/input/touchscreen/gt819.c deleted file mode 100755 index 109be9dffd6d..000000000000 --- a/drivers/input/touchscreen/gt819.c +++ /dev/null @@ -1,827 +0,0 @@ -/* drivers/input/touchscreen/goodix_touch.c - * - * Copyright (C) 2010 - 2011 Goodix, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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 -#include -#include -#include -#include -#include -#include - -#define GOODIX_I2C_NAME "Goodix-TS" -//define default resolution of the touchscreen -#define GOODIX_MULTI_TOUCH -#define GT819_IIC_SPEED 400*1000 //400*1000 -#define TOUCH_MAX_WIDTH 800 -#define TOUCH_MAX_HEIGHT 480 -#define TOUCH_MAJOR_MAX 200 -#define WIDTH_MAJOR_MAX 200 -#define MAX_POINT 5 -#define INT_TRIGGER_EDGE_RISING 0 -#define INT_TRIGGER_EDGE_FALLING 1 -#define INT_TRIGGER_EDGE_LOW 2 -#define INT_TRIGGER_EDGE_HIGH 3 -#define INT_TRIGGER INT_TRIGGER_EDGE_FALLING -#define I2C_DELAY 0x0f - -#define PACK_SIZE 64 //update file package size -#define MAX_TIMEOUT 60000 //update time out conut -#define MAX_I2C_RETRIES 20 //i2c retry times - -//I2C buf address -#define ADDR_CMD 80 -#define ADDR_STA 81 -#define ADDR_DAT 0 -//moudle state -#define NEW_UPDATE_START 0x01 -#define UPDATE_START 0x02 -#define SLAVE_READY 0x08 -#define UNKNOWN_ERROR 0x00 -#define FRAME_ERROR 0x10 -#define CHECKSUM_ERROR 0x20 -#define TRANSLATE_ERROR 0x40 -#define FLASH_ERROR 0X80 -//error no -#define ERROR_NO_FILE 2 //ENOENT -#define ERROR_FILE_READ 23 //ENFILE -#define ERROR_FILE_TYPE 21 //EISDIR -#define ERROR_GPIO_REQUEST 4 //EINTR -#define ERROR_I2C_TRANSFER 5 //EIO -#define ERROR_NO_RESPONSE 16 //EBUSY -#define ERROR_TIMEOUT 110 //ETIMEDOUT - -struct goodix_ts_data { - struct workqueue_struct *goodix_wq; - struct i2c_client *client; - struct input_dev *input_dev; - struct work_struct work; - int irq; - int irq_gpio; - uint16_t abs_x_max; - uint16_t abs_y_max; - uint8_t max_touch_num; - uint8_t int_trigger_type; -}; - -static const char *goodix_ts_name = "Goodix Capacitive TouchScreen"; -unsigned int crc32_table[256]; -unsigned int oldcrc32 = 0xFFFFFFFF; -unsigned int ulPolynomial = 0x04c11db7; -struct i2c_client * i2c_connect_client = NULL; -static struct early_suspend gt819_power; -static u8 gt819_fw[]= -{ -#include "gt819_fw.i" -}; -#if 0 -uint8_t config_info[] = { -0x02,(TOUCH_MAX_WIDTH>>8),(TOUCH_MAX_WIDTH&0xff), -(TOUCH_MAX_HEIGHT>>8),(TOUCH_MAX_HEIGHT&0xff),MAX_POINT,(0xa0 | INT_TRIGGER), -0x20,0x00,0x00,0x0f,0x20,0x08,0x14,0x00, -0x00,0x20,0x00,0x00,0x88,0x88,0x88,0x00,0x37,0x00,0x00,0x00,0x01,0x02,0x03,0x04, -0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0xff,0xff,0x00,0x01,0x02,0x03,0x04, -0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0xff,0xff,0xff,0x00,0x00,0x3c,0x64,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40 -}; -#else -static u8 config_info[]= -{ -#include "gt819.cfg" -}; -#endif -static int gt819_read_regs(struct i2c_client *client, u8 reg, u8 buf[], unsigned len) -{ - int ret; - ret = i2c_master_reg8_recv(client, reg, buf, len, GT819_IIC_SPEED); - if(ret>0) - return ret; - ret = i2c_master_reg8_recv(client, reg, buf, len, GT819_IIC_SPEED); - if(ret>0) - return ret; - ret = i2c_master_reg8_recv(client, reg, buf, len, GT819_IIC_SPEED); - if(ret>0) - return ret; - ret = i2c_master_reg8_recv(client, reg, buf, len, GT819_IIC_SPEED); - if(ret>0) - return ret; - ret = i2c_master_reg8_recv(client, reg, buf, len, GT819_IIC_SPEED); - return ret; -} - - -static int gt819_set_regs(struct i2c_client *client, u8 reg, u8 const buf[], unsigned short len) -{ - int ret; - ret = i2c_master_reg8_send(client, reg, buf, (int)len, GT819_IIC_SPEED); - if(ret>0) - return ret; - ret = i2c_master_reg8_send(client, reg, buf, (int)len, GT819_IIC_SPEED); - if(ret>0) - return ret; - ret = i2c_master_reg8_send(client, reg, buf, (int)len, GT819_IIC_SPEED); - if(ret>0) - return ret; - ret = i2c_master_reg8_send(client, reg, buf, (int)len, GT819_IIC_SPEED); - if(ret>0) - return ret; - ret = i2c_master_reg8_send(client, reg, buf, (int)len, GT819_IIC_SPEED); - return ret; -} - -int gt819_printf(char *buf, int len) -{ - int x, y, row = len/8,mod = len%8; - for (y=0; ydev, "config info check error!\n"); - if(retries < 5) - { - retries++; - ret = gt819_set_regs(client, ADDR_CMD, &cfg_cmd_buf, 1); - if(ret < 0) - return ret; - goto reconfig; - } - return -1; - } - cfg_cmd_buf = 0x04; - ret = gt819_set_regs(client, ADDR_CMD, &cfg_cmd_buf, 1); - if(ret < 0) - return ret; - return 0; - } - - -static int gt819_read_version(struct i2c_client *client,char *version) -{ - int ret, count = 0; - char *p; - - ret = gt819_read_regs(client,240, version, 16); - if (ret < 0) - return ret; - version[16]='\0'; - p = version; - do - { - if((*p > 122) || (*p < 48 && *p != 32) || (*p >57 && *p < 65) - ||(*p > 90 && *p < 97 && *p != '_')) //check illeqal character - count++; - }while(*++p != '\0' ); - if(count > 2) - return -1; - dev_info(&client->dev, "fw version is %s\n",version); - return ret; -} - -int gt819_update_write_fw(struct i2c_client *client, char *fw_buf, int len) -{ - int ret,data_len,i,check_len,frame_checksum,frame_number = 0; - unsigned char *p,i2c_data_buf[PACK_SIZE+8]; - u8 i2c_rd_buf[PACK_SIZE+8]; - - u8 retries = 0; - u8 check_state = 0; - - if(!client || !fw_buf) - return -1; - - while(len){ - frame_checksum = 0; - retries = 0; - check_len = (len >= PACK_SIZE) ? PACK_SIZE : len; - data_len = check_len+8; - dev_info(&client->dev, "PACK[%d]:prepare data,remained len = %d\n",frame_number,len); - p = &fw_buf[frame_number*PACK_SIZE]; - for(i=0; i>24)&0xff; - *p++ = (frame_number>>16)&0xff; - *p++ = (frame_number>>8)&0xff; - *p++ = frame_number&0xff; - memcpy(p, &fw_buf[frame_number*PACK_SIZE],check_len); - p += check_len; - *p++ = frame_checksum&0xff; - *p++ = (frame_checksum>>8)&0xff; - *p++ = (frame_checksum>>16)&0xff; - *p++ = (frame_checksum>>24)&0xff; - //gt819_printf(i2c_data_buf, data_len); - dev_info(&client->dev, "PACK[%d]:write to slave\n",frame_number); -resend: - ret = gt819_set_regs(client,ADDR_DAT, i2c_data_buf, data_len); - if(ret < 0) - return ret; - //gt819_printf(i2c_data_buf, data_len); - msleep(10); - dev_info(&client->dev, "PACK[%d]:read data\n",frame_number); - memset(i2c_rd_buf, 0, sizeof(i2c_rd_buf)); - ret = gt819_read_regs(client,ADDR_DAT, i2c_rd_buf, data_len); - if(ret < 0) - return ret; - //gt819_printf(i2c_data_buf, data_len); - msleep(10); - dev_info(&client->dev, "PACK[%d]:check data\n",frame_number); - if(memcmp(&i2c_rd_buf[4],&fw_buf[frame_number*PACK_SIZE],check_len)) - { - dev_info(&client->dev, "PACK[%d]:File Data Frame readback check Error!\n",frame_number); - i2c_rd_buf[0] = 0x03; - ret = gt819_set_regs(client, ADDR_CMD, i2c_rd_buf, 1); - if(ret < 0) - return ret; - check_state = 0x01; - } - else - { - dev_info(&client->dev, "PACK[%d]:tell slave check data pass\n",frame_number); - i2c_rd_buf[0] = 0x04; - ret = gt819_set_regs(client,ADDR_CMD, i2c_rd_buf, 1); - if(ret < 0) - return ret; - dev_info(&client->dev, "PACK[%d]:wait for slave to start next frame\n",frame_number); - } - - ret = gt189_wait_for_slave(client, SLAVE_READY); - if((ret & CHECKSUM_ERROR) || (ret & FRAME_ERROR) || (ret == ERROR_I2C_TRANSFER) || (ret < 0) || (check_state == 0x01)) - { - - if(((ret & CHECKSUM_ERROR) || (ret & FRAME_ERROR) || (check_state == 0x01))&&(retries < 5)) - { - if(check_state != 0x01) - { - printk("checksum error or miss frame error!\n"); - } - check_state = 0x00; - retries++; - msleep(20); - goto resend; - } - printk("wait slave return state:%d\n", ret); - return ret; - } - dev_info(&client->dev, "PACK[%d]:frame transfer finished\n",frame_number); - if(len < PACK_SIZE) - return 0; - frame_number++; - len -= check_len; - } - return 0; -} - -int gt819_update_fw(struct i2c_client *client) -{ - int ret,file_len,update_need_config; - unsigned char i2c_control_buf[10]; - char version[17]; - const char version_base[17]={"GT81XNI"}; - - dev_info(&client->dev, "gt819 firmware update start...\n"); - dev_info(&client->dev, "step 1:read version...\n"); - ret = gt819_read_version(client,version); - if (ret < 0) - return ret; - dev_info(&client->dev, "done!\n"); - dev_info(&client->dev, "step 2:disable irq...\n"); - disable_irq(client->irq); - dev_info(&client->dev, "done!\n"); - dev_info(&client->dev, "step 3:set update start...\n"); - i2c_control_buf[0] = UPDATE_START; - ret = gt819_set_regs(client,ADDR_CMD, i2c_control_buf, 1); - if(ret < 0) - return ret; - //the time include time(APROM -> LDROM) and time(LDROM init) - msleep(1000); - dev_info(&client->dev, "done!\n"); - dev_info(&client->dev, "step 4:wait for slave start...\n"); - ret = gt189_wait_for_slave(client, UPDATE_START); - if(ret < 0) - return ret; - if(!(ret & UPDATE_START)) - return -1; - if(!(ret & NEW_UPDATE_START)) - update_need_config = 1; - dev_info(&client->dev, "done!\n"); - dev_info(&client->dev, "step 5:write the fw length...\n"); - file_len = sizeof(gt819_fw) + 4; - dev_info(&client->dev, "file length is:%d\n", file_len); - i2c_control_buf[0] = (file_len>>24) & 0xff; - i2c_control_buf[1] = (file_len>>16) & 0xff; - i2c_control_buf[2] = (file_len>>8) & 0xff; - i2c_control_buf[3] = file_len & 0xff; - ret = gt819_set_regs(client,ADDR_DAT, i2c_control_buf, 4); - if(ret < 0) - return ret; - dev_info(&client->dev, "done!\n"); - dev_info(&client->dev, "step 6:wait for slave ready\n"); - ret = gt189_wait_for_slave(client, SLAVE_READY); - if(ret < 0) - return ret; - dev_info(&client->dev, "done!\n"); - dev_info(&client->dev, "step 7:write data\n"); - ret = gt819_update_write_fw(client, gt819_fw, sizeof(gt819_fw)); - if(ret < 0) - return ret; - dev_info(&client->dev, "done!\n"); - dev_info(&client->dev, "step 8:write config\n"); - ret = gt819_update_write_config(client); - if(ret < 0) - return ret; - dev_info(&client->dev, "done!\n"); - dev_info(&client->dev, "step 9:wait for slave ready\n"); - ret = gt189_wait_for_slave(client,SLAVE_READY); - if(ret < 0) - return ret; - if(ret & SLAVE_READY) - dev_info(&client->dev, "The firmware updating succeed!update state:0x%x\n",ret); - dev_info(&client->dev, "step 10:enable irq...\n"); - enable_irq(client->irq); - dev_info(&client->dev, "done!\n"); - msleep(1000); //wait slave reset - dev_info(&client->dev, "step 11:read version...\n"); - ret = gt819_read_version(client,version); - if (ret < 0) - return ret; - dev_info(&client->dev, "done!\n"); - version[7] = '\0'; - if(strcmp(version ,version_base)==0) - { - sys_sync(); - msleep(200); - kernel_restart(NULL); - } - return 0; -} - - -static void gt819_queue_work(struct work_struct *work) -{ - struct goodix_ts_data *ts = container_of(work, struct goodix_ts_data, work); - uint8_t point_data[53]={ 0 }; - int ret,i,offset,points; - int points_chect; - int x,y,w; - unsigned int count = 0; - uint8_t check_sum = 0; - - ret = gt819_read_regs(ts->client,1, point_data, 2); - if (ret < 0) { - dev_err(&ts->client->dev, "i2c_read_bytes fail:%d!\n",ret); - enable_irq(ts->irq); - return; - } - check_sum =point_data[0]+point_data[1]; - - points = point_data[0] & 0x1f; - //dev_info(&ts->client->dev, "points = %d\n",points); - if (points == 0) { - input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0); - input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, 0); - //input_mt_sync(data->input_dev); - input_sync(ts->input_dev); - enable_irq(ts->irq); - dev_info(&ts->client->dev, "touch release\n"); - return; - } - for(i=0;0!=points;) - { - if(points&0x01) - i++; - points>>=1; - } - - points = i; - points_chect = points; - ret = gt819_read_regs(ts->client,3, point_data, points*5+1); - if (ret < 0) { - dev_err(&ts->client->dev, "i2c_read_bytes fail:%d!\n",ret); - enable_irq(ts->irq); - return; - } - //add by Nitiion - for(points_chect *= 5; points_chect > 0; points_chect--) - { - check_sum += point_data[count++]; - } - check_sum += point_data[count]; - if(check_sum != 0) //checksum verify error - { - input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0); - input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, 0); - //input_mt_sync(data->input_dev); - input_sync(ts->input_dev); - enable_irq(ts->irq); - dev_info(&ts->client->dev, "coor checksum error!touch release\n"); - return; - } - - for(i=0;iclient->dev, "goodix multiple report event[%d]:x = %d,y = %d,w = %d\n",i,x,y,w); - if(x<=TOUCH_MAX_WIDTH && y<=TOUCH_MAX_HEIGHT){ - //dev_info(&ts->client->dev, "goodix multiple report event[%d]:x = %d,y = %d,w = %d\n",i,x,y,w); - input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, w); - 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_TRACKING_ID, i); - input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, w); - input_mt_sync(ts->input_dev); - } - } - input_sync(ts->input_dev); - enable_irq(ts->irq); - return; -} - -/******************************************************* -Description: - External interrupt service routine. - -Parameter: - irq: interrupt number. - dev_id: private data pointer. - -return: - irq execute status. -*******************************************************/ -static irqreturn_t gt819_irq_handler(int irq, void *dev_id) -{ - struct goodix_ts_data *ts = dev_id; - - disable_irq_nosync(ts->client->irq); - queue_work(ts->goodix_wq, &ts->work); - return IRQ_HANDLED; -} - -static int gt819_suspend(struct i2c_client *client, pm_message_t mesg) -{ - struct goodix_platform_data *pdata = client->dev.platform_data; - dev_info(&client->dev,"gt819_suspend\n"); - - if (pdata->platform_sleep) - pdata->platform_sleep(); - disable_irq(client->irq); - return 0; -} - -static int gt819_resume(struct i2c_client *client) -{ - struct goodix_platform_data *pdata = client->dev.platform_data; - dev_info(&client->dev,"gt819_resume\n"); - - enable_irq(client->irq); - if (pdata->platform_wakeup) - pdata->platform_wakeup(); - return 0; -} - -static void gt819_early_suspend(struct early_suspend *h) -{ - dev_info(&i2c_connect_client->dev, "gt819_early_suspend!\n"); - gt819_suspend(i2c_connect_client,PMSG_SUSPEND); -} - -static void gt819_early_resume(struct early_suspend *h) -{ - dev_info(&i2c_connect_client->dev, "gt819_resume_early!\n"); - gt819_resume(i2c_connect_client); -} - -/******************************************************* -Description: - Goodix touchscreen driver release function. - -Parameter: - client: i2c device struct. - -return: - Executive outcomes. 0---succeed. -*******************************************************/ -static int gt819_remove(struct i2c_client *client) -{ - struct goodix_ts_data *ts = i2c_get_clientdata(client); -#ifdef CONFIG_TOUCHSCREEN_GOODIX_IAP - remove_proc_entry("goodix-update", NULL); -#endif - //goodix_debug_sysfs_deinit(); - gpio_direction_input(ts->irq_gpio); - gpio_free(ts->irq_gpio); - free_irq(client->irq, ts); - if(ts->goodix_wq) - destroy_workqueue(ts->goodix_wq); - dev_notice(&client->dev,"The driver is removing...\n"); - i2c_set_clientdata(client, NULL); - input_unregister_device(ts->input_dev); - unregister_early_suspend(>819_power); - i2c_connect_client = 0; - kfree(ts); - return 0; -} - -static int gt819_init_panel(struct goodix_ts_data *ts) -{ - int ret,I2cDelay; - int len = sizeof(config_info)-1; - uint8_t rd_cfg_buf[10]; - struct goodix_platform_data *pdata = ts->client->dev.platform_data; - - ret = gt819_set_regs(ts->client, 101, &config_info[1], len); - if(ret < 0) - { - pdata->platform_sleep(); - msleep(10); - pdata->platform_wakeup(); - msleep(100); - printk("First IIC request failed,retry!\n"); - ret = gt819_set_regs(ts->client, 101, &config_info[1], len); - if(ret<0) - return ret; - } - - ret = gt819_read_regs(ts->client, 101, rd_cfg_buf, 10); - if (ret < 0) - return ret; - ts->abs_x_max = ((((uint16_t)rd_cfg_buf[1])<<8)|rd_cfg_buf[2]); - ts->abs_y_max = ((((uint16_t)rd_cfg_buf[3])<<8)|rd_cfg_buf[4]); - ts->max_touch_num = rd_cfg_buf[5]; - ts->int_trigger_type = rd_cfg_buf[6]&0x03; - I2cDelay = rd_cfg_buf[9]&0x0f; - dev_info(&ts->client->dev,"X_MAX = %d,Y_MAX = %d,MAX_TOUCH_NUM = %d,INT_TRIGGER = %d,I2cDelay = %x\n", - ts->abs_x_max,ts->abs_y_max,ts->max_touch_num,ts->int_trigger_type,I2cDelay); - if((ts->abs_x_max!=TOUCH_MAX_WIDTH)||(ts->abs_y_max!=TOUCH_MAX_HEIGHT)|| - (MAX_POINT!=ts->max_touch_num)||INT_TRIGGER!=ts->int_trigger_type || I2C_DELAY!=I2cDelay){ - ts->abs_x_max = TOUCH_MAX_WIDTH; - ts->abs_y_max = TOUCH_MAX_HEIGHT; - ts->max_touch_num = MAX_POINT; - ts->int_trigger_type = INT_TRIGGER; - rd_cfg_buf[1] = ts->abs_x_max>>8; - rd_cfg_buf[2] = ts->abs_x_max&0xff; - rd_cfg_buf[3] = ts->abs_y_max>>8; - rd_cfg_buf[4] = ts->abs_y_max&0xff; - rd_cfg_buf[5] = ts->max_touch_num; - rd_cfg_buf[6] = ((rd_cfg_buf[6]&0xfc) | INT_TRIGGER); - rd_cfg_buf[9] = ((rd_cfg_buf[9]&0xf0) | I2C_DELAY); - ret = gt819_set_regs(ts->client, 101, rd_cfg_buf, 10); - if (ret < 0) - return ret; - dev_info(&ts->client->dev,"set config\n"); - } - return 0; -} - -/******************************************************* -Description: - Goodix touchscreen probe function. - -Parameter: - client: i2c device struct. - id:device id. - -return: - Executive outcomes. 0---succeed. -*******************************************************/ -static int gt819_probe(struct i2c_client *client, const struct i2c_device_id *id) -{ - int ret = 0; - char version[17]; - char version_base[17]={"GT81XNI_1R05_18Q"}; - struct goodix_ts_data *ts; - struct goodix_platform_data *pdata = client->dev.platform_data; - const char irq_table[4] = {IRQ_TYPE_EDGE_RISING, - IRQ_TYPE_EDGE_FALLING, - IRQ_TYPE_LEVEL_LOW, - IRQ_TYPE_LEVEL_HIGH}; - - dev_info(&client->dev,"Install goodix touch driver\n"); - - if (!pdata) { - dev_err(&client->dev, "platform data is required!\n"); - return -EINVAL; - } - - if (pdata->init_platform_hw) - pdata->init_platform_hw(); - - if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { - dev_err(&client->dev, "Must have I2C_FUNC_I2C.\n"); - return -ENODEV; - } - ts = kzalloc(sizeof(*ts), GFP_KERNEL); - if (ts == NULL) { - return -ENOMEM; - } - - ts->client = i2c_connect_client = client; - - ret = gt819_init_panel(ts); - if(ret != 0){ - dev_err(&client->dev,"init panel fail,ret = %d\n",ret); - goto err_init_panel_fail; - } - - ret = gt819_read_version(client,version); - if((ret>=0) && (strcmp(version ,version_base)!=0)){ - gt819_update_fw(client); - } - - if (!client->irq){ - dev_err(&client->dev,"no irq fail\n"); - ret = -ENODEV; - goto err_no_irq_fail; - } - ts->irq_gpio = client->irq; - ts->irq = client->irq = gpio_to_irq(client->irq); - ret = request_irq(client->irq, gt819_irq_handler, irq_table[ts->int_trigger_type],client->name, ts); - if (ret != 0) { - dev_err(&client->dev,"request_irq fail:%d\n", ret); - goto err_irq_request_fail; - } - - ts->goodix_wq = create_workqueue("goodix_wq"); - if (!ts->goodix_wq) { - printk(KERN_ALERT "creat workqueue failed\n"); - ret = -ENOMEM; - goto err_create_work_queue_fail; - } - - INIT_WORK(&ts->work, gt819_queue_work); - - ts->input_dev = input_allocate_device(); - if (ts->input_dev == NULL) { - ret = -ENOMEM; - dev_err(&client->dev,"Failed to allocate input device\n"); - goto err_input_dev_alloc_failed; - } - - 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_TRACKING_ID, ts->input_dev->absbit); - set_bit(ABS_MT_WIDTH_MAJOR, ts->input_dev->absbit); - set_bit(EV_ABS, ts->input_dev->evbit); - set_bit(EV_KEY, ts->input_dev->evbit); - input_set_abs_params(ts->input_dev,ABS_MT_POSITION_X, 0, TOUCH_MAX_WIDTH, 0, 0); - input_set_abs_params(ts->input_dev,ABS_MT_POSITION_Y, 0, TOUCH_MAX_HEIGHT, 0, 0); - input_set_abs_params(ts->input_dev,ABS_MT_TOUCH_MAJOR, 0, TOUCH_MAJOR_MAX, 0, 0); - input_set_abs_params(ts->input_dev,ABS_MT_TRACKING_ID, 0, MAX_POINT, 0, 0); - input_set_abs_params(ts->input_dev,ABS_MT_WIDTH_MAJOR, 0, WIDTH_MAJOR_MAX, 0, 0); - - ts->input_dev->name = goodix_ts_name; - ret = input_register_device(ts->input_dev); - if (ret) { - dev_err(&client->dev,"Probe: Unable to register %s input device\n", ts->input_dev->name); - goto err_input_register_device_failed; - } - i2c_set_clientdata(client, ts); - - gt819_power.suspend = gt819_early_suspend; - gt819_power.resume = gt819_early_resume; - gt819_power.level = 0x2; - register_early_suspend(>819_power); - return 0; - i2c_set_clientdata(client, NULL); - input_unregister_device(ts->input_dev); -err_input_register_device_failed: - input_free_device(ts->input_dev); -err_input_dev_alloc_failed: - destroy_workqueue(ts->goodix_wq); -err_create_work_queue_fail: - free_irq(client->irq,ts); -err_irq_request_fail: -err_no_irq_fail: -err_init_panel_fail: - if (pdata->exit_platform_hw) - pdata->exit_platform_hw(); - kfree(ts); - return ret; -} - - - -static const struct i2c_device_id gt819_id[] = { - { GOODIX_I2C_NAME, 0 }, - { } -}; - -static struct i2c_driver gt819_driver = { - .probe = gt819_probe, - .remove = gt819_remove, - .id_table = gt819_id, - .driver = { - .name = GOODIX_I2C_NAME, - .owner = THIS_MODULE, - }, -}; - -/******************************************************* -Description: - Driver Install function. -return: - Executive Outcomes. 0---succeed. -********************************************************/ -static int __devinit gt819_init(void) -{ - int ret; - - ret=i2c_add_driver(>819_driver); - return ret; -} - -/******************************************************* -Description: - Driver uninstall function. -return: - Executive Outcomes. 0---succeed. -********************************************************/ -static void __exit gt819_exit(void) -{ - printk(KERN_ALERT "Touchscreen driver of guitar exited.\n"); - i2c_del_driver(>819_driver); -} - -late_initcall(gt819_init); -module_exit(gt819_exit); - -MODULE_DESCRIPTION("Goodix Touchscreen Driver"); -MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/gt819.cfg b/drivers/input/touchscreen/gt819.cfg deleted file mode 100755 index 1ca306ffc217..000000000000 --- a/drivers/input/touchscreen/gt819.cfg +++ /dev/null @@ -1 +0,0 @@ -0x65,0x02,0x03,0x20,0x01,0xE0,0x05,0xA1,0x21,0x00,0x0F,0x0F,0x20,0x10,0x10,0x00,0x00,0x20,0x00,0x00,0x10,0x10,0x10,0x00,0x37,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0xFF,0xFF,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0xFF,0xFF,0xFF,0x00,0x00,0x46,0x78,0x2E,0x01,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3B,0x02,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20 \ No newline at end of file diff --git a/drivers/input/touchscreen/gt819_fw.i b/drivers/input/touchscreen/gt819_fw.i deleted file mode 100755 index d9599ac1fa0b..000000000000 --- a/drivers/input/touchscreen/gt819_fw.i +++ /dev/null @@ -1,3064 +0,0 @@ - 0xD8, 0x1E, 0x00, 0x20, 0x79, 0x02, 0x00, 0x00, 0x9F, 0x02, 0x00, 0x00, 0xA1, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x02, 0x00, 0x00, 0xA7, 0x02, 0x00, 0x00, - 0x65, 0x0A, 0x00, 0x00, 0xFD, 0xA2, 0x00, 0x00, 0xB9, 0x36, 0x00, 0x00, 0xDD, 0x36, 0x00, 0x00, - 0xB9, 0x3E, 0x00, 0x00, 0xF5, 0x3E, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, - 0xA9, 0x02, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, - 0x99, 0x96, 0x00, 0x00, 0xB9, 0x96, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, - 0xA9, 0x02, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, 0xE1, 0x53, 0x00, 0x00, - 0xA9, 0x02, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, 0xD9, 0x96, 0x00, 0x00, - 0xA9, 0x02, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, - 0xC9, 0x6F, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, - 0x00, 0xF0, 0x02, 0xF8, 0x00, 0xF0, 0x32, 0xF8, 0x0C, 0xA0, 0x30, 0xC8, 0x08, 0x38, 0x24, 0x18, - 0x2D, 0x18, 0xA2, 0x46, 0x67, 0x1E, 0xAB, 0x46, 0x54, 0x46, 0x5D, 0x46, 0xAC, 0x42, 0x01, 0xD1, - 0x00, 0xF0, 0x24, 0xF8, 0x7E, 0x46, 0x0F, 0x3E, 0x0F, 0xCC, 0xB6, 0x46, 0x01, 0x26, 0x33, 0x42, - 0x00, 0xD0, 0xFB, 0x1A, 0xA2, 0x46, 0xAB, 0x46, 0x33, 0x43, 0x18, 0x47, 0x94, 0xBD, 0x00, 0x00, - 0xB4, 0xBD, 0x00, 0x00, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x10, 0x3A, 0x01, 0xD3, - 0x78, 0xC1, 0xFB, 0xD8, 0x52, 0x07, 0x00, 0xD3, 0x30, 0xC1, 0x00, 0xD5, 0x0B, 0x60, 0x70, 0x47, - 0x1F, 0xB5, 0xC0, 0x46, 0xC0, 0x46, 0x1F, 0xBD, 0x10, 0xB5, 0x10, 0xBD, 0x00, 0xF0, 0x8E, 0xF9, - 0x11, 0x46, 0xFF, 0xF7, 0xF5, 0xFF, 0x0A, 0xF0, 0xE9, 0xFB, 0x00, 0xF0, 0xA6, 0xF9, 0xFF, 0xF7, - 0xF3, 0xFF, 0x00, 0xF0, 0xAD, 0xF9, 0x00, 0x00, 0xF0, 0xB5, 0x29, 0x4F, 0x3F, 0x78, 0x02, 0x3F, - 0x03, 0x00, 0x0C, 0x00, 0x50, 0x20, 0x00, 0x04, 0x40, 0x30, 0x00, 0x02, 0x08, 0x30, 0x00, 0x21, - 0x09, 0x02, 0x80, 0x31, 0x09, 0x18, 0x00, 0x22, 0x12, 0x02, 0x80, 0x32, 0x12, 0x18, 0x01, 0x25, - 0x6D, 0x02, 0x0E, 0x68, 0xAE, 0x43, 0x0E, 0x60, 0x80, 0x20, 0x01, 0x25, 0xAD, 0x02, 0x0E, 0x68, - 0x03, 0x42, 0x01, 0xD0, 0x2E, 0x43, 0x00, 0xE0, 0xAE, 0x43, 0x0E, 0x60, 0x01, 0x26, 0x76, 0x1E, - 0xFD, 0xD1, 0x00, 0xBF, 0x01, 0x25, 0x6D, 0x02, 0x0E, 0x68, 0x2E, 0x43, 0x0E, 0x60, 0x3E, 0x00, - 0x01, 0x36, 0x76, 0x1E, 0xFD, 0xD1, 0x00, 0xBF, 0x01, 0x25, 0xED, 0x02, 0x16, 0x68, 0xAE, 0x43, - 0x16, 0x60, 0x01, 0x25, 0x2D, 0x03, 0x16, 0x68, 0x04, 0x42, 0x01, 0xD0, 0x2E, 0x43, 0x00, 0xE0, - 0xAE, 0x43, 0x16, 0x60, 0x01, 0x26, 0x76, 0x1E, 0xFD, 0xD1, 0x00, 0xBF, 0x01, 0x25, 0xED, 0x02, - 0x16, 0x68, 0x2E, 0x43, 0x16, 0x60, 0x3E, 0x00, 0x01, 0x36, 0x76, 0x1E, 0xFD, 0xD1, 0x01, 0x25, - 0x6D, 0x02, 0x0E, 0x68, 0xAE, 0x43, 0x0E, 0x60, 0x40, 0x08, 0x00, 0x28, 0xC5, 0xD1, 0xF0, 0xBD, - 0x3F, 0x00, 0x00, 0x20, 0xF0, 0xB5, 0x03, 0xB4, 0x1E, 0x4F, 0x3F, 0x78, 0x01, 0x37, 0x50, 0x20, - 0x00, 0x04, 0x40, 0x30, 0x00, 0x02, 0x00, 0x21, 0x09, 0x02, 0x80, 0x31, 0x09, 0x18, 0x00, 0x22, - 0x12, 0x02, 0x80, 0x32, 0x12, 0x18, 0x00, 0x20, 0x00, 0x23, 0x00, 0x24, 0x5B, 0x00, 0x64, 0x00, - 0x01, 0x25, 0x6D, 0x02, 0x8E, 0x68, 0x2E, 0x43, 0x8E, 0x60, 0x01, 0x25, 0xED, 0x02, 0x96, 0x68, - 0x2E, 0x43, 0x96, 0x60, 0x01, 0x26, 0x76, 0x1E, 0xFD, 0xD1, 0x0E, 0x69, 0x76, 0x05, 0xF6, 0x0F, - 0x33, 0x43, 0x16, 0x69, 0xF6, 0x04, 0xF6, 0x0F, 0x34, 0x43, 0x01, 0x25, 0x6D, 0x02, 0x8E, 0x68, - 0xAE, 0x43, 0x8E, 0x60, 0x01, 0x25, 0xED, 0x02, 0x96, 0x68, 0xAE, 0x43, 0x96, 0x60, 0x3E, 0x00, - 0x01, 0x36, 0x76, 0x1E, 0xFD, 0xD1, 0x40, 0x1C, 0x08, 0x28, 0xD7, 0xD1, 0x03, 0xBC, 0x03, 0x70, - 0x0C, 0x70, 0xF0, 0xBD, 0x3F, 0x00, 0x00, 0x20, 0x0F, 0x48, 0x10, 0x49, 0x01, 0x60, 0x10, 0x49, - 0x01, 0x60, 0x10, 0x49, 0x01, 0x60, 0x10, 0x4A, 0x10, 0x49, 0x11, 0x60, 0x10, 0x4A, 0x11, 0x49, - 0x11, 0x60, 0x00, 0x21, 0x01, 0x60, 0x10, 0x48, 0x80, 0x47, 0x10, 0x48, 0x00, 0x47, 0xFE, 0xE7, - 0xFE, 0xE7, 0xFE, 0xE7, 0xFE, 0xE7, 0xFE, 0xE7, 0xFE, 0xE7, 0x00, 0x00, 0x0C, 0x48, 0x0D, 0x49, - 0x0B, 0x4A, 0x0D, 0x4B, 0x70, 0x47, 0x00, 0x00, 0x00, 0x01, 0x00, 0x50, 0x59, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x50, 0xA5, 0x5A, 0x00, 0x00, - 0x18, 0xC0, 0x00, 0x50, 0x80, 0x00, 0x00, 0x00, 0xE5, 0x95, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, - 0xD8, 0x1A, 0x00, 0x20, 0xD8, 0x1E, 0x00, 0x20, 0xD8, 0x1A, 0x00, 0x20, 0x00, 0x22, 0x03, 0x09, - 0x8B, 0x42, 0x2C, 0xD3, 0x03, 0x0A, 0x8B, 0x42, 0x11, 0xD3, 0x00, 0x23, 0x9C, 0x46, 0x4E, 0xE0, - 0x03, 0x46, 0x0B, 0x43, 0x3C, 0xD4, 0x00, 0x22, 0x43, 0x08, 0x8B, 0x42, 0x31, 0xD3, 0x03, 0x09, - 0x8B, 0x42, 0x1C, 0xD3, 0x03, 0x0A, 0x8B, 0x42, 0x01, 0xD3, 0x94, 0x46, 0x3F, 0xE0, 0xC3, 0x09, - 0x8B, 0x42, 0x01, 0xD3, 0xCB, 0x01, 0xC0, 0x1A, 0x52, 0x41, 0x83, 0x09, 0x8B, 0x42, 0x01, 0xD3, - 0x8B, 0x01, 0xC0, 0x1A, 0x52, 0x41, 0x43, 0x09, 0x8B, 0x42, 0x01, 0xD3, 0x4B, 0x01, 0xC0, 0x1A, - 0x52, 0x41, 0x03, 0x09, 0x8B, 0x42, 0x01, 0xD3, 0x0B, 0x01, 0xC0, 0x1A, 0x52, 0x41, 0xC3, 0x08, - 0x8B, 0x42, 0x01, 0xD3, 0xCB, 0x00, 0xC0, 0x1A, 0x52, 0x41, 0x83, 0x08, 0x8B, 0x42, 0x01, 0xD3, - 0x8B, 0x00, 0xC0, 0x1A, 0x52, 0x41, 0x43, 0x08, 0x8B, 0x42, 0x01, 0xD3, 0x4B, 0x00, 0xC0, 0x1A, - 0x52, 0x41, 0x41, 0x1A, 0x00, 0xD2, 0x01, 0x46, 0x52, 0x41, 0x10, 0x46, 0x70, 0x47, 0x5D, 0xE0, - 0xCA, 0x0F, 0x00, 0xD0, 0x49, 0x42, 0x03, 0x10, 0x00, 0xD3, 0x40, 0x42, 0x53, 0x40, 0x00, 0x22, - 0x9C, 0x46, 0x03, 0x09, 0x8B, 0x42, 0x2D, 0xD3, 0x03, 0x0A, 0x8B, 0x42, 0x12, 0xD3, 0xFC, 0x22, - 0x89, 0x01, 0x12, 0xBA, 0x03, 0x0A, 0x8B, 0x42, 0x0C, 0xD3, 0x89, 0x01, 0x92, 0x11, 0x8B, 0x42, - 0x08, 0xD3, 0x89, 0x01, 0x92, 0x11, 0x8B, 0x42, 0x04, 0xD3, 0x89, 0x01, 0x3A, 0xD0, 0x92, 0x11, - 0x00, 0xE0, 0x89, 0x09, 0xC3, 0x09, 0x8B, 0x42, 0x01, 0xD3, 0xCB, 0x01, 0xC0, 0x1A, 0x52, 0x41, - 0x83, 0x09, 0x8B, 0x42, 0x01, 0xD3, 0x8B, 0x01, 0xC0, 0x1A, 0x52, 0x41, 0x43, 0x09, 0x8B, 0x42, - 0x01, 0xD3, 0x4B, 0x01, 0xC0, 0x1A, 0x52, 0x41, 0x03, 0x09, 0x8B, 0x42, 0x01, 0xD3, 0x0B, 0x01, - 0xC0, 0x1A, 0x52, 0x41, 0xC3, 0x08, 0x8B, 0x42, 0x01, 0xD3, 0xCB, 0x00, 0xC0, 0x1A, 0x52, 0x41, - 0x83, 0x08, 0x8B, 0x42, 0x01, 0xD3, 0x8B, 0x00, 0xC0, 0x1A, 0x52, 0x41, 0xD9, 0xD2, 0x43, 0x08, - 0x8B, 0x42, 0x01, 0xD3, 0x4B, 0x00, 0xC0, 0x1A, 0x52, 0x41, 0x41, 0x1A, 0x00, 0xD2, 0x01, 0x46, - 0x63, 0x46, 0x52, 0x41, 0x5B, 0x10, 0x10, 0x46, 0x01, 0xD3, 0x40, 0x42, 0x00, 0x2B, 0x00, 0xD5, - 0x49, 0x42, 0x70, 0x47, 0x63, 0x46, 0x5B, 0x10, 0x00, 0xD3, 0x40, 0x42, 0x01, 0xB5, 0x00, 0x20, - 0xC0, 0x46, 0xC0, 0x46, 0x02, 0xBD, 0x70, 0x47, 0x70, 0x47, 0x70, 0x47, 0x75, 0x46, 0x00, 0xF0, - 0x23, 0xF8, 0xAE, 0x46, 0x05, 0x00, 0x69, 0x46, 0x53, 0x46, 0xC0, 0x08, 0xC0, 0x00, 0x85, 0x46, - 0x18, 0xB0, 0x20, 0xB5, 0xFF, 0xF7, 0x22, 0xFF, 0x60, 0xBC, 0x00, 0x27, 0x49, 0x08, 0xB6, 0x46, - 0x00, 0x26, 0xC0, 0xC5, 0xC0, 0xC5, 0xC0, 0xC5, 0xC0, 0xC5, 0xC0, 0xC5, 0xC0, 0xC5, 0xC0, 0xC5, - 0xC0, 0xC5, 0x40, 0x3D, 0x49, 0x00, 0x8D, 0x46, 0x70, 0x47, 0x04, 0x46, 0xC0, 0x46, 0xC0, 0x46, - 0x20, 0x46, 0xFF, 0xF7, 0x54, 0xFE, 0x00, 0x00, 0x00, 0x48, 0x70, 0x47, 0x78, 0x1A, 0x00, 0x20, - 0x02, 0x48, 0x03, 0x49, 0xAB, 0xBE, 0x70, 0x47, 0x0D, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x02, 0x00, 0x70, 0x47, 0x70, 0xB5, 0x8C, 0x18, 0x05, 0x78, 0x40, 0x1C, 0x6B, 0x07, - 0x5B, 0x0F, 0x01, 0xD1, 0x03, 0x78, 0x40, 0x1C, 0x2A, 0x11, 0x06, 0xD1, 0x02, 0x78, 0x40, 0x1C, - 0x03, 0xE0, 0x06, 0x78, 0x40, 0x1C, 0x0E, 0x70, 0x49, 0x1C, 0x5B, 0x1E, 0xF9, 0xD1, 0x2B, 0x07, - 0x06, 0xD4, 0x00, 0x23, 0x01, 0xE0, 0x0B, 0x70, 0x49, 0x1C, 0x52, 0x1E, 0xFB, 0xD5, 0x0A, 0xE0, - 0x03, 0x78, 0x40, 0x1C, 0xCB, 0x1A, 0x92, 0x1C, 0x03, 0xE0, 0x1D, 0x78, 0x5B, 0x1C, 0x0D, 0x70, - 0x49, 0x1C, 0x52, 0x1E, 0xF9, 0xD5, 0xA1, 0x42, 0xD7, 0xD3, 0x00, 0x20, 0x70, 0xBD, 0x00, 0x28, - 0x00, 0xDA, 0x40, 0x42, 0x70, 0x47, 0x00, 0x00, 0xFE, 0xB5, 0xEE, 0x4E, 0x00, 0x24, 0xF4, 0x76, - 0x34, 0x71, 0x71, 0x78, 0x30, 0x46, 0x49, 0x08, 0x49, 0x00, 0x20, 0x30, 0x71, 0x70, 0x01, 0x79, - 0x00, 0x29, 0x01, 0xD0, 0x49, 0x1E, 0x01, 0x71, 0xE6, 0x4D, 0x00, 0x20, 0x80, 0x35, 0xA9, 0x6A, - 0x09, 0x5C, 0x00, 0x29, 0x18, 0xD0, 0xF1, 0x7E, 0x49, 0x1C, 0xF1, 0x76, 0x2A, 0x6A, 0x41, 0x00, - 0xEB, 0x6A, 0x52, 0x5A, 0x5A, 0x52, 0x6A, 0x6A, 0x2B, 0x6B, 0x52, 0x5A, 0x5A, 0x52, 0xAA, 0x6A, - 0x6B, 0x6B, 0x12, 0x5C, 0x5A, 0x52, 0xAB, 0x6A, 0x00, 0x22, 0x1C, 0x54, 0x2B, 0x6A, 0xD2, 0x43, - 0x5A, 0x52, 0x6B, 0x6A, 0x5A, 0x52, 0x08, 0xE0, 0x00, 0x22, 0xD2, 0x43, 0xEB, 0x6A, 0x41, 0x00, - 0x5A, 0x52, 0x2B, 0x6B, 0x5A, 0x52, 0x6A, 0x6B, 0x54, 0x52, 0x40, 0x1C, 0x0A, 0x28, 0xD6, 0xDB, - 0x1B, 0x21, 0x71, 0x56, 0x00, 0x29, 0x12, 0xD1, 0xCF, 0x4F, 0x4A, 0x1E, 0x3D, 0x46, 0x3C, 0x35, - 0xCD, 0x4B, 0x48, 0x00, 0x28, 0x33, 0x1A, 0x52, 0x2A, 0x52, 0x3A, 0x52, 0x14, 0x3B, 0x1A, 0x52, - 0x3C, 0x33, 0x49, 0x1C, 0x1C, 0x52, 0x0A, 0x29, 0xF2, 0xDB, 0xB4, 0x76, 0xFE, 0xBD, 0x1A, 0x20, - 0x30, 0x56, 0x81, 0x42, 0x1E, 0xDA, 0xC3, 0x4A, 0x91, 0x78, 0x49, 0x1C, 0xC9, 0xB2, 0x91, 0x70, - 0x92, 0x7D, 0x91, 0x42, 0x16, 0xD2, 0xC0, 0x4F, 0x00, 0x20, 0x28, 0x37, 0x3C, 0x46, 0x14, 0x34, - 0x26, 0x46, 0x14, 0x36, 0x41, 0x00, 0x2B, 0x6A, 0x7A, 0x5A, 0x5A, 0x52, 0x6B, 0x6A, 0x62, 0x5A, - 0x5A, 0x52, 0x03, 0x46, 0xAA, 0x6A, 0x71, 0x5A, 0x40, 0x1C, 0x0A, 0x28, 0xD1, 0x54, 0xF1, 0xDB, - 0xB4, 0x49, 0x61, 0xE1, 0xB3, 0x49, 0x00, 0x22, 0x0C, 0x46, 0x40, 0x34, 0x8A, 0x70, 0x00, 0x28, - 0x48, 0xD1, 0x00, 0x21, 0x40, 0xE0, 0x01, 0x20, 0x63, 0x8B, 0x88, 0x40, 0x18, 0x42, 0x37, 0xD0, - 0xAC, 0x4E, 0x1A, 0x23, 0xEF, 0x6A, 0xF3, 0x56, 0xAB, 0x4E, 0x48, 0x00, 0x3A, 0x5A, 0x28, 0x36, - 0x5B, 0x00, 0xF2, 0x52, 0x2A, 0x6B, 0xBC, 0x46, 0x14, 0x36, 0x17, 0x5A, 0xF7, 0x52, 0xA6, 0x4F, - 0x6E, 0x6B, 0x50, 0x37, 0x36, 0x5A, 0xFE, 0x52, 0x67, 0x46, 0x3E, 0x5A, 0xA2, 0x4F, 0xFE, 0x52, - 0x3E, 0x46, 0x12, 0x5A, 0x14, 0x36, 0xF2, 0x52, 0x67, 0x46, 0x3A, 0x5A, 0x2E, 0x6A, 0x9D, 0x4F, - 0xF2, 0x52, 0x1A, 0x23, 0xFB, 0x56, 0x2A, 0x6B, 0x6E, 0x6A, 0x12, 0x5A, 0x5B, 0x00, 0xF2, 0x52, - 0x6E, 0x6B, 0x3B, 0x46, 0x30, 0x5A, 0x1A, 0x26, 0x9E, 0x57, 0xAA, 0x6A, 0x01, 0x23, 0x90, 0x55, - 0x78, 0x78, 0x3A, 0x46, 0x18, 0x43, 0x50, 0x70, 0x90, 0x7E, 0x40, 0x1C, 0x90, 0x76, 0x02, 0xE0, - 0x10, 0x79, 0x40, 0x1C, 0x10, 0x71, 0x49, 0x1C, 0x8E, 0x4A, 0x1B, 0x20, 0x10, 0x56, 0x81, 0x42, - 0xB9, 0xDB, 0xFE, 0xBD, 0x03, 0xF0, 0x30, 0xFE, 0x00, 0x26, 0xA8, 0x6B, 0x80, 0x57, 0x00, 0x28, - 0x1F, 0xDB, 0x88, 0x4B, 0x2A, 0x6C, 0xB1, 0x00, 0xDB, 0x6F, 0x51, 0x58, 0x99, 0x42, 0x18, 0xD9, - 0x85, 0x49, 0x77, 0x00, 0x14, 0x31, 0xCA, 0x5F, 0x14, 0x39, 0xC9, 0x5F, 0x00, 0x91, 0x82, 0x49, - 0x01, 0x92, 0x3C, 0x31, 0xCB, 0x5F, 0x14, 0x39, 0xCA, 0x5F, 0x29, 0x6B, 0x40, 0x00, 0xEF, 0x6A, - 0x09, 0x5E, 0x38, 0x5E, 0x08, 0xF0, 0x52, 0xF9, 0x01, 0x28, 0x02, 0xD1, 0xA9, 0x6B, 0xFF, 0x20, - 0x88, 0x55, 0x79, 0x48, 0x72, 0x00, 0x28, 0x30, 0x77, 0x49, 0x80, 0x5E, 0x88, 0x52, 0x76, 0x4B, - 0x3C, 0x31, 0x14, 0x33, 0x89, 0x5A, 0x99, 0x52, 0x40, 0x1C, 0x31, 0xD0, 0xA9, 0x6B, 0x88, 0x57, - 0x00, 0x28, 0x2D, 0xDB, 0xEF, 0x6A, 0x40, 0x00, 0x14, 0x33, 0x38, 0x5A, 0x98, 0x52, 0x89, 0x57, - 0x2F, 0x6B, 0x4B, 0x00, 0x6C, 0x49, 0xFB, 0x5A, 0x3C, 0x31, 0x8B, 0x52, 0x2B, 0x6A, 0x98, 0x52, - 0x88, 0x5A, 0x69, 0x6A, 0x88, 0x52, 0xA8, 0x6B, 0x6B, 0x6B, 0x80, 0x57, 0xA9, 0x6A, 0x40, 0x00, - 0x18, 0x5A, 0x65, 0x4B, 0xC0, 0xB2, 0x50, 0x33, 0x88, 0x55, 0x98, 0x52, 0xAA, 0x6B, 0x00, 0x20, - 0x92, 0x57, 0xE9, 0x6A, 0xC0, 0x43, 0x53, 0x00, 0xC8, 0x52, 0xA8, 0x6B, 0x69, 0x6B, 0x80, 0x57, - 0x00, 0x22, 0x43, 0x00, 0x5B, 0x48, 0xCA, 0x52, 0x41, 0x78, 0x01, 0x22, 0x11, 0x43, 0x41, 0x70, - 0x76, 0x1C, 0x0A, 0x2E, 0x99, 0xDB, 0x00, 0x20, 0xE8, 0x61, 0xA0, 0x82, 0x69, 0x6B, 0x42, 0x00, - 0x89, 0x5E, 0x00, 0x29, 0x41, 0xDD, 0x01, 0x21, 0x63, 0x8B, 0x81, 0x40, 0x19, 0x42, 0x35, 0xD0, - 0x50, 0x49, 0x52, 0x4E, 0x89, 0x7C, 0x2F, 0x6C, 0x8C, 0x46, 0xE9, 0x69, 0x2B, 0xE0, 0x8B, 0x00, - 0xFB, 0x58, 0xB3, 0x42, 0x25, 0xD1, 0xEB, 0x6A, 0x4B, 0x4E, 0x9B, 0x5A, 0x28, 0x36, 0x49, 0x00, - 0x73, 0x52, 0x2E, 0x6B, 0xB7, 0x5A, 0x48, 0x4E, 0x3C, 0x36, 0x77, 0x52, 0x3C, 0x3E, 0x73, 0x52, - 0x14, 0x36, 0x77, 0x52, 0x2E, 0x6A, 0x44, 0x4F, 0x73, 0x52, 0xE9, 0x69, 0x3C, 0x37, 0x49, 0x00, - 0x6E, 0x6A, 0x7B, 0x5A, 0x73, 0x52, 0x6B, 0x6B, 0xA9, 0x6A, 0x9A, 0x5A, 0xEB, 0x69, 0xD2, 0xB2, - 0xCA, 0x54, 0xE9, 0x69, 0x3E, 0x46, 0x4B, 0x00, 0x14, 0x36, 0xF2, 0x52, 0x49, 0x1C, 0xE9, 0x61, - 0x08, 0xE0, 0x49, 0x1C, 0xE9, 0x61, 0x61, 0x45, 0xD1, 0xDB, 0x03, 0xE0, 0x35, 0x49, 0x0A, 0x79, - 0x52, 0x1C, 0x0A, 0x71, 0xA1, 0x8A, 0x49, 0x1C, 0xA1, 0x82, 0x40, 0x1C, 0x0A, 0x28, 0xB5, 0xDB, - 0x00, 0x24, 0x31, 0x4E, 0x2F, 0x4F, 0xEC, 0x61, 0x64, 0x36, 0xB9, 0x7C, 0x20, 0x46, 0xAA, 0x6A, - 0x09, 0xE0, 0x13, 0x5C, 0x00, 0x2B, 0x04, 0xD1, 0x06, 0x23, 0x43, 0x43, 0xF3, 0x5E, 0x5B, 0x1C, - 0x03, 0xD1, 0x40, 0x1C, 0xE8, 0x61, 0x88, 0x42, 0xF3, 0xDB, 0x88, 0x42, 0xEC, 0x61, 0x28, 0xDA, - 0x24, 0x4B, 0x20, 0x46, 0x21, 0xE0, 0xA9, 0x6A, 0x09, 0x5C, 0x00, 0x29, 0x1A, 0xD0, 0x06, 0x22, - 0x01, 0x46, 0x51, 0x43, 0x71, 0x5E, 0x49, 0x1C, 0x14, 0xD1, 0x1F, 0x4A, 0x49, 0x1E, 0x40, 0x00, - 0x28, 0x32, 0x11, 0x52, 0x14, 0x32, 0x11, 0x52, 0x14, 0x32, 0x11, 0x52, 0x2A, 0x6A, 0x11, 0x52, - 0xE8, 0x69, 0x6A, 0x6A, 0x40, 0x00, 0x11, 0x52, 0xE9, 0x69, 0xA8, 0x6A, 0x44, 0x54, 0x18, 0x79, - 0x40, 0x1C, 0x18, 0x71, 0xE8, 0x69, 0x40, 0x1C, 0xE8, 0x61, 0x99, 0x7C, 0x88, 0x42, 0xDA, 0xDB, - 0x11, 0xE0, 0x6F, 0x6A, 0x2E, 0x6A, 0xE9, 0x69, 0x0F, 0x4C, 0x48, 0x00, 0x33, 0x5A, 0x28, 0x34, - 0x23, 0x52, 0x3B, 0x5A, 0x14, 0x34, 0x23, 0x52, 0x53, 0x5C, 0x14, 0x34, 0x49, 0x1C, 0x23, 0x52, - 0xE9, 0x61, 0x0A, 0x29, 0xEF, 0xDB, 0x07, 0x49, 0xC8, 0x7E, 0x0A, 0x79, 0x80, 0x1A, 0x40, 0xB2, - 0x88, 0x76, 0x00, 0x28, 0x00, 0xDC, 0xEC, 0xE6, 0x48, 0x78, 0x01, 0x22, 0x10, 0x43, 0x48, 0x70, - 0xFE, 0xBD, 0x00, 0x00, 0x24, 0x01, 0x00, 0x20, 0x72, 0x05, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0x7F, - 0x70, 0xB5, 0x00, 0x24, 0x26, 0x46, 0x20, 0x25, 0x28, 0x46, 0x03, 0xF0, 0xCB, 0xFF, 0x00, 0x28, - 0x06, 0xD0, 0x00, 0x2C, 0x02, 0xD1, 0x2C, 0x46, 0x2E, 0x46, 0x03, 0xE0, 0x2E, 0x46, 0x01, 0xE0, - 0x00, 0x2C, 0x03, 0xD1, 0x2D, 0x1D, 0xED, 0xB2, 0x50, 0x2D, 0xED, 0xD3, 0x25, 0x46, 0x07, 0xE0, - 0x28, 0x46, 0x03, 0xF0, 0xB7, 0xFF, 0x00, 0x28, 0x06, 0xD0, 0x2C, 0x46, 0xAD, 0x1E, 0xED, 0xB2, - 0x20, 0x2D, 0xF5, 0xD8, 0x35, 0x46, 0x0F, 0xE0, 0x6D, 0x1C, 0xE8, 0xB2, 0x03, 0xF0, 0xAA, 0xFF, - 0x00, 0x28, 0xF7, 0xD0, 0xEC, 0xB2, 0xF5, 0xE7, 0x28, 0x46, 0x03, 0xF0, 0xA3, 0xFF, 0x00, 0x28, - 0x08, 0xD0, 0x2E, 0x46, 0xAD, 0x1C, 0xED, 0xB2, 0x50, 0x2D, 0xF5, 0xD3, 0x00, 0x2C, 0x09, 0xD1, - 0x00, 0x20, 0x70, 0xBD, 0x6D, 0x1E, 0xE8, 0xB2, 0x03, 0xF0, 0x94, 0xFF, 0x00, 0x28, 0xF5, 0xD0, - 0xEE, 0xB2, 0xF3, 0xE7, 0xA0, 0x19, 0x40, 0x1C, 0xC0, 0x05, 0x00, 0x0E, 0x70, 0xBD, 0x00, 0x00, - 0xF0, 0xB5, 0x39, 0x4A, 0x10, 0x7C, 0x00, 0x09, 0x6D, 0xD0, 0x38, 0x4E, 0x30, 0x7C, 0x80, 0x1C, - 0x84, 0x46, 0x41, 0x1C, 0x10, 0x7C, 0xC3, 0x06, 0x35, 0x48, 0x10, 0xD5, 0x07, 0x46, 0x20, 0x37, - 0x3D, 0x69, 0x02, 0x23, 0x6B, 0x54, 0xBD, 0x68, 0x4C, 0x00, 0x43, 0x8B, 0x2B, 0x53, 0x1A, 0x23, - 0xC3, 0x5E, 0x34, 0x7D, 0xA3, 0x42, 0x02, 0xDD, 0x3C, 0x69, 0x00, 0x23, 0x63, 0x54, 0x13, 0x7C, - 0x9B, 0x06, 0x17, 0xD5, 0x2A, 0x4C, 0x33, 0x7C, 0x20, 0x34, 0xCB, 0x18, 0x27, 0x69, 0x02, 0x25, - 0x5B, 0x1E, 0xFD, 0x54, 0x26, 0x4F, 0x5C, 0x00, 0x20, 0x37, 0xBF, 0x68, 0x45, 0x8B, 0x3D, 0x53, - 0x1A, 0x24, 0x04, 0x5F, 0x35, 0x7D, 0xAC, 0x42, 0x04, 0xDD, 0x21, 0x4D, 0x00, 0x24, 0x20, 0x35, - 0x2D, 0x69, 0xEC, 0x54, 0x13, 0x7C, 0x5B, 0x06, 0x19, 0xD5, 0x74, 0x7C, 0x63, 0x46, 0x64, 0x1E, - 0x63, 0x43, 0x1B, 0x4C, 0x02, 0x25, 0x20, 0x34, 0x27, 0x69, 0x5B, 0x18, 0xFD, 0x54, 0x18, 0x4F, - 0x5C, 0x00, 0x20, 0x37, 0xBF, 0x68, 0x45, 0x8B, 0x3D, 0x53, 0x1A, 0x24, 0x04, 0x5F, 0x35, 0x7D, - 0xAC, 0x42, 0x04, 0xDD, 0x12, 0x4D, 0x00, 0x24, 0x20, 0x35, 0x2D, 0x69, 0xEC, 0x54, 0x12, 0x7C, - 0x12, 0x06, 0x18, 0xD5, 0x73, 0x7C, 0x62, 0x46, 0x5B, 0x1E, 0x5A, 0x43, 0x33, 0x7C, 0x51, 0x18, - 0x0B, 0x4D, 0x5B, 0x1E, 0x20, 0x35, 0xC9, 0x18, 0x2B, 0x69, 0x02, 0x22, 0x5A, 0x54, 0xAB, 0x68, - 0x4C, 0x00, 0x42, 0x8B, 0x1A, 0x53, 0x1A, 0x22, 0x82, 0x5E, 0x30, 0x7D, 0x82, 0x42, 0x02, 0xDD, - 0x2A, 0x69, 0x00, 0x20, 0x50, 0x54, 0xF0, 0xBD, 0x14, 0x04, 0x00, 0x20, 0x24, 0x01, 0x00, 0x20, - 0x84, 0x01, 0x00, 0x20, 0x10, 0xB5, 0x05, 0x20, 0x00, 0x07, 0x80, 0x69, 0x10, 0x21, 0x88, 0x43, - 0x10, 0x30, 0x05, 0x21, 0x09, 0x07, 0x88, 0x61, 0x03, 0x48, 0x00, 0x68, 0x00, 0x28, 0x02, 0xD0, - 0x01, 0x48, 0x00, 0x68, 0x80, 0x47, 0x10, 0xBD, 0x14, 0x01, 0x00, 0x20, 0xF7, 0xB5, 0x82, 0xB0, - 0x04, 0x46, 0x0D, 0x46, 0x29, 0x46, 0x20, 0x46, 0xFF, 0xF7, 0x28, 0xFC, 0x00, 0x07, 0x00, 0x0F, - 0x02, 0x28, 0x17, 0xD2, 0x68, 0x01, 0xA0, 0x42, 0x14, 0xD2, 0x04, 0x98, 0x00, 0x68, 0x01, 0x21, - 0x49, 0x07, 0x88, 0x43, 0x04, 0x99, 0x08, 0x60, 0x04, 0x98, 0x00, 0x68, 0x01, 0x21, 0x09, 0x07, - 0x88, 0x43, 0x04, 0x99, 0x08, 0x60, 0x29, 0x46, 0x20, 0x46, 0xFF, 0xF7, 0x0F, 0xFC, 0x00, 0x09, - 0x86, 0x1E, 0x4C, 0xE0, 0x04, 0x98, 0x00, 0x68, 0x01, 0x21, 0x49, 0x07, 0x88, 0x43, 0x41, 0x18, - 0x04, 0x98, 0x01, 0x60, 0x04, 0x98, 0x00, 0x68, 0x01, 0x21, 0x09, 0x07, 0x88, 0x43, 0x40, 0x18, - 0x04, 0x99, 0x08, 0x60, 0x29, 0x46, 0x20, 0x46, 0xFF, 0xF7, 0xF8, 0xFB, 0x86, 0x1E, 0x21, 0x48, - 0x86, 0x42, 0x34, 0xDD, 0x04, 0x98, 0x00, 0x68, 0x01, 0x21, 0x49, 0x07, 0x88, 0x43, 0x41, 0x18, - 0x04, 0x98, 0x01, 0x60, 0x04, 0x98, 0x00, 0x68, 0x01, 0x21, 0x09, 0x07, 0x88, 0x43, 0x04, 0x99, - 0x08, 0x60, 0x08, 0x27, 0x20, 0xE0, 0x29, 0x46, 0x20, 0x46, 0xFF, 0xF7, 0xDF, 0xFB, 0x79, 0x1C, - 0x01, 0x90, 0xFF, 0xF7, 0xDB, 0xFB, 0x03, 0x29, 0x15, 0xD2, 0x04, 0x98, 0x01, 0x68, 0x0F, 0x20, - 0x00, 0x06, 0x81, 0x43, 0x38, 0x06, 0x0F, 0x22, 0x12, 0x06, 0x10, 0x40, 0x01, 0x43, 0x04, 0x98, - 0x01, 0x60, 0x29, 0x46, 0x20, 0x46, 0xFF, 0xF7, 0xC9, 0xFB, 0x79, 0x1C, 0x01, 0x90, 0xFF, 0xF7, - 0xC5, 0xFB, 0x86, 0x1E, 0x02, 0xE0, 0x7F, 0x1C, 0x10, 0x2F, 0xDC, 0xDB, 0x00, 0xBF, 0x04, 0x98, - 0x00, 0x68, 0x00, 0x0C, 0x00, 0x04, 0xB1, 0xB2, 0x08, 0x43, 0x04, 0x99, 0x08, 0x60, 0x05, 0xB0, - 0xF0, 0xBD, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFE, 0xB5, 0x8B, 0x4D, 0x2B, 0x68, 0x2D, 0x68, - 0x23, 0x26, 0x76, 0x01, 0xAC, 0x19, 0x89, 0x4D, 0x2D, 0x68, 0x01, 0x95, 0x87, 0x4D, 0x2D, 0x68, - 0xAD, 0x19, 0x00, 0x95, 0x00, 0x21, 0x00, 0x22, 0x00, 0x25, 0x02, 0x95, 0x34, 0xE0, 0x00, 0x20, - 0x0A, 0xE0, 0x4D, 0x00, 0x5D, 0x5B, 0x4E, 0x00, 0x01, 0x9F, 0xBE, 0x5B, 0xAD, 0x1B, 0x2D, 0xB2, - 0x4E, 0x00, 0x9D, 0x53, 0x40, 0x1C, 0x49, 0x1C, 0x7D, 0x4D, 0x2D, 0x78, 0xA8, 0x42, 0xF0, 0xDB, - 0x04, 0xE0, 0x00, 0x25, 0x4E, 0x00, 0x9D, 0x53, 0x40, 0x1C, 0x49, 0x1C, 0x0A, 0x28, 0xF8, 0xDB, - 0x00, 0x20, 0x0A, 0xE0, 0x55, 0x00, 0x65, 0x5B, 0x56, 0x00, 0x00, 0x9F, 0xBE, 0x5B, 0xAD, 0x1B, - 0x2D, 0xB2, 0x56, 0x00, 0xA5, 0x53, 0x40, 0x1C, 0x52, 0x1C, 0x72, 0x4D, 0x2D, 0x78, 0xA8, 0x42, - 0xF0, 0xDB, 0x04, 0xE0, 0x00, 0x25, 0x56, 0x00, 0xA5, 0x53, 0x40, 0x1C, 0x52, 0x1C, 0x0A, 0x28, - 0xF8, 0xDB, 0x02, 0x9D, 0x6D, 0x1C, 0x02, 0x95, 0x6B, 0x4E, 0x36, 0x78, 0x02, 0x9D, 0xB5, 0x42, - 0xC5, 0xDB, 0x6A, 0x4D, 0x2D, 0x78, 0x00, 0x2D, 0x3C, 0xD0, 0x00, 0x25, 0x02, 0x95, 0x34, 0xE0, - 0x00, 0x20, 0x0A, 0xE0, 0x4D, 0x00, 0x5D, 0x5B, 0x4E, 0x00, 0x01, 0x9F, 0xBE, 0x5B, 0xAD, 0x1B, - 0x2D, 0xB2, 0x4E, 0x00, 0x9D, 0x53, 0x40, 0x1C, 0x49, 0x1C, 0x60, 0x4D, 0x2D, 0x78, 0xA8, 0x42, - 0xF0, 0xDB, 0x04, 0xE0, 0x00, 0x25, 0x4E, 0x00, 0x9D, 0x53, 0x40, 0x1C, 0x49, 0x1C, 0x0A, 0x28, - 0xF8, 0xDB, 0x00, 0x20, 0x0A, 0xE0, 0x55, 0x00, 0x65, 0x5B, 0x56, 0x00, 0x00, 0x9F, 0xBE, 0x5B, - 0xAD, 0x1B, 0x2D, 0xB2, 0x56, 0x00, 0xA5, 0x53, 0x40, 0x1C, 0x52, 0x1C, 0x54, 0x4D, 0x2D, 0x78, - 0xA8, 0x42, 0xF0, 0xDB, 0x04, 0xE0, 0x00, 0x25, 0x56, 0x00, 0xA5, 0x53, 0x40, 0x1C, 0x52, 0x1C, - 0x0A, 0x28, 0xF8, 0xDB, 0x02, 0x9D, 0x6D, 0x1C, 0x02, 0x95, 0x4B, 0x4E, 0x36, 0x78, 0x02, 0x9D, - 0xB5, 0x42, 0xC5, 0xDB, 0x00, 0x25, 0x02, 0x95, 0x34, 0xE0, 0x00, 0x20, 0x0A, 0xE0, 0x4D, 0x00, - 0x5D, 0x5B, 0x4E, 0x00, 0x01, 0x9F, 0xBE, 0x5B, 0xAD, 0x1B, 0x2D, 0xB2, 0x4E, 0x00, 0x9D, 0x53, - 0x40, 0x1C, 0x49, 0x1C, 0x3E, 0x4D, 0x2D, 0x78, 0xA8, 0x42, 0xF0, 0xDB, 0x04, 0xE0, 0x00, 0x25, - 0x4E, 0x00, 0x9D, 0x53, 0x40, 0x1C, 0x49, 0x1C, 0x0A, 0x28, 0xF8, 0xDB, 0x00, 0x20, 0x0A, 0xE0, - 0x55, 0x00, 0x65, 0x5B, 0x56, 0x00, 0x00, 0x9F, 0xBE, 0x5B, 0xAD, 0x1B, 0x2D, 0xB2, 0x56, 0x00, - 0xA5, 0x53, 0x40, 0x1C, 0x52, 0x1C, 0x33, 0x4D, 0x2D, 0x78, 0xA8, 0x42, 0xF0, 0xDB, 0x04, 0xE0, - 0x00, 0x25, 0x56, 0x00, 0xA5, 0x53, 0x40, 0x1C, 0x52, 0x1C, 0x0A, 0x28, 0xF8, 0xDB, 0x02, 0x9D, - 0x6D, 0x1C, 0x02, 0x95, 0x2F, 0x4E, 0x36, 0x78, 0x02, 0x9D, 0xB5, 0x42, 0xC5, 0xDB, 0x2B, 0x4D, - 0x2D, 0x78, 0x00, 0x2D, 0x3C, 0xD0, 0x00, 0x25, 0x02, 0x95, 0x34, 0xE0, 0x00, 0x20, 0x0A, 0xE0, - 0x4D, 0x00, 0x5D, 0x5B, 0x4E, 0x00, 0x01, 0x9F, 0xBE, 0x5B, 0xAD, 0x1B, 0x2D, 0xB2, 0x4E, 0x00, - 0x9D, 0x53, 0x40, 0x1C, 0x49, 0x1C, 0x21, 0x4D, 0x2D, 0x78, 0xA8, 0x42, 0xF0, 0xDB, 0x04, 0xE0, - 0x00, 0x25, 0x4E, 0x00, 0x9D, 0x53, 0x40, 0x1C, 0x49, 0x1C, 0x0A, 0x28, 0xF8, 0xDB, 0x00, 0x20, - 0x0A, 0xE0, 0x55, 0x00, 0x65, 0x5B, 0x56, 0x00, 0x00, 0x9F, 0xBE, 0x5B, 0xAD, 0x1B, 0x2D, 0xB2, - 0x56, 0x00, 0xA5, 0x53, 0x40, 0x1C, 0x52, 0x1C, 0x15, 0x4D, 0x2D, 0x78, 0xA8, 0x42, 0xF0, 0xDB, - 0x04, 0xE0, 0x00, 0x25, 0x56, 0x00, 0xA5, 0x53, 0x40, 0x1C, 0x52, 0x1C, 0x0A, 0x28, 0xF8, 0xDB, - 0x02, 0x9D, 0x6D, 0x1C, 0x02, 0x95, 0x0F, 0x4E, 0x36, 0x78, 0x02, 0x9D, 0xB5, 0x42, 0xC5, 0xDB, - 0x05, 0xE0, 0x00, 0x25, 0x4E, 0x00, 0x9D, 0x53, 0x4E, 0x00, 0xA5, 0x53, 0x49, 0x1C, 0x23, 0x25, - 0x2D, 0x01, 0xA9, 0x42, 0xF5, 0xDB, 0xFE, 0xBD, 0xB0, 0x01, 0x00, 0x20, 0xAC, 0x01, 0x00, 0x20, - 0x2D, 0x01, 0x00, 0x20, 0x30, 0x01, 0x00, 0x20, 0x32, 0x01, 0x00, 0x20, 0x2E, 0x01, 0x00, 0x20, - 0x31, 0x01, 0x00, 0x20, 0x33, 0x01, 0x00, 0x20, 0xF8, 0xB5, 0xC1, 0x48, 0xC1, 0x7E, 0x84, 0x46, - 0xC2, 0x7E, 0x09, 0x09, 0x00, 0x20, 0x00, 0x90, 0x60, 0x46, 0xC0, 0x7A, 0xC0, 0x06, 0x01, 0xD5, - 0x10, 0x20, 0x00, 0x90, 0xBB, 0x4D, 0x00, 0x9E, 0x00, 0x20, 0xB9, 0x4B, 0x60, 0x3B, 0x9F, 0x19, - 0x60, 0x37, 0xFB, 0x7F, 0xFF, 0x2B, 0x1B, 0xD0, 0xFB, 0x7F, 0x6C, 0x6B, 0x23, 0x54, 0x6B, 0x6B, - 0x1B, 0x18, 0x59, 0x70, 0x6B, 0x6B, 0x1B, 0x18, 0x99, 0x70, 0x6B, 0x6B, 0x1B, 0x18, 0xD9, 0x70, - 0xFB, 0x7F, 0xAC, 0x6B, 0x76, 0x1C, 0x23, 0x54, 0xAB, 0x6B, 0x1B, 0x18, 0x59, 0x70, 0xAB, 0x6B, - 0x1B, 0x18, 0x99, 0x70, 0xAB, 0x6B, 0x1B, 0x18, 0x00, 0x1D, 0xD9, 0x70, 0x40, 0x28, 0xDC, 0xDB, - 0xA9, 0x4B, 0x69, 0x6B, 0x18, 0x78, 0xA6, 0x4F, 0x80, 0x00, 0x40, 0x18, 0x20, 0x38, 0x04, 0x7F, - 0x10, 0x21, 0x0C, 0x43, 0x04, 0x77, 0x18, 0x78, 0xAB, 0x6B, 0x80, 0x00, 0xC0, 0x18, 0x20, 0x38, - 0x03, 0x7F, 0x0B, 0x43, 0x03, 0x77, 0x00, 0x98, 0x10, 0x30, 0xC1, 0x17, 0xC9, 0x0E, 0x09, 0x18, - 0x49, 0x09, 0x49, 0x01, 0x44, 0x1A, 0x40, 0x20, 0x60, 0x3F, 0x3E, 0x19, 0x60, 0x36, 0xF1, 0x7F, - 0xFF, 0x29, 0x1B, 0xD0, 0xF1, 0x7F, 0x6B, 0x6B, 0x19, 0x54, 0x69, 0x6B, 0x09, 0x18, 0x4A, 0x70, - 0x69, 0x6B, 0x09, 0x18, 0x8A, 0x70, 0x69, 0x6B, 0x09, 0x18, 0xCA, 0x70, 0xF1, 0x7F, 0xAB, 0x6B, - 0x64, 0x1C, 0x19, 0x54, 0xA9, 0x6B, 0x09, 0x18, 0x4A, 0x70, 0xA9, 0x6B, 0x09, 0x18, 0x8A, 0x70, - 0xA9, 0x6B, 0x09, 0x18, 0x00, 0x1D, 0xCA, 0x70, 0x80, 0x28, 0xDE, 0xDB, 0x8B, 0x4C, 0x69, 0x6B, - 0x20, 0x78, 0x89, 0x4B, 0x80, 0x00, 0x40, 0x18, 0x20, 0x30, 0x02, 0x7F, 0x10, 0x21, 0x0A, 0x43, - 0x02, 0x77, 0x20, 0x78, 0xAA, 0x6B, 0x80, 0x00, 0x80, 0x18, 0x20, 0x30, 0x02, 0x7F, 0x03, 0x26, - 0x0A, 0x43, 0x02, 0x77, 0x6A, 0x6B, 0x80, 0x20, 0x19, 0x78, 0x11, 0x54, 0x1A, 0x78, 0xAB, 0x6B, - 0x81, 0x21, 0x1A, 0x54, 0x6A, 0x6B, 0x20, 0x78, 0x50, 0x54, 0x22, 0x78, 0xAB, 0x6B, 0x7C, 0x4C, - 0x5A, 0x54, 0x21, 0x78, 0x6A, 0x6B, 0x82, 0x20, 0x7A, 0x4B, 0x11, 0x54, 0x1A, 0x78, 0xAB, 0x6B, - 0x79, 0x4C, 0x1A, 0x54, 0x6A, 0x6B, 0x83, 0x21, 0x20, 0x78, 0x78, 0x4B, 0x50, 0x54, 0x18, 0x78, - 0xAA, 0x6B, 0x84, 0x23, 0x50, 0x54, 0x68, 0x6B, 0x02, 0x21, 0xC6, 0x54, 0xA8, 0x6B, 0x62, 0x46, - 0xC1, 0x54, 0xD0, 0x7A, 0xC0, 0x06, 0x03, 0xD5, 0x68, 0x6B, 0xC1, 0x54, 0xA8, 0x6B, 0xC6, 0x54, - 0x85, 0x21, 0x00, 0x20, 0x3A, 0x18, 0x60, 0x32, 0x53, 0x7D, 0x6C, 0x6B, 0x63, 0x54, 0x52, 0x7D, - 0xAB, 0x6B, 0x4C, 0x1C, 0x40, 0x1C, 0x5A, 0x54, 0x21, 0x46, 0x06, 0x28, 0xF2, 0xDB, 0x61, 0x48, - 0x00, 0x22, 0x44, 0x6B, 0x01, 0x23, 0x62, 0x54, 0x84, 0x6B, 0x4A, 0x1C, 0x63, 0x54, 0x61, 0x46, - 0x09, 0x7F, 0x43, 0x6B, 0x31, 0x43, 0x64, 0x46, 0x99, 0x54, 0x24, 0x7F, 0x81, 0x6B, 0x34, 0x43, - 0x57, 0x48, 0x53, 0x1C, 0x40, 0x30, 0x8C, 0x54, 0x01, 0x7B, 0x09, 0x07, 0x09, 0x0F, 0x03, 0x29, - 0x7E, 0xD1, 0x00, 0x24, 0x5A, 0x4A, 0x21, 0x46, 0x14, 0x70, 0x25, 0x46, 0x50, 0x4A, 0x60, 0x3A, - 0x52, 0x19, 0xA0, 0x32, 0x12, 0x79, 0x16, 0x07, 0x36, 0x0F, 0x08, 0x2E, 0x04, 0xDA, 0x01, 0x27, - 0xB7, 0x40, 0x27, 0x43, 0xFC, 0xB2, 0x06, 0xE0, 0x0A, 0x2E, 0x08, 0xDA, 0x08, 0x3E, 0x01, 0x27, - 0xB7, 0x40, 0x0F, 0x43, 0xF9, 0xB2, 0x4E, 0x4A, 0x16, 0x78, 0x76, 0x1C, 0x16, 0x70, 0x6D, 0x1C, - 0x08, 0x2D, 0xE3, 0xDB, 0x43, 0x4E, 0x5A, 0x1C, 0x75, 0x6B, 0x17, 0x46, 0xEC, 0x54, 0xB5, 0x6B, - 0xEC, 0x54, 0x73, 0x6B, 0x54, 0x1C, 0x99, 0x54, 0xB2, 0x6B, 0x45, 0x4D, 0xD1, 0x55, 0x29, 0x78, - 0x00, 0x29, 0x14, 0xD0, 0xC2, 0x7B, 0x0F, 0x2A, 0x00, 0xD9, 0x0F, 0x22, 0x10, 0x21, 0xB5, 0x6B, - 0x7C, 0x23, 0x0A, 0x43, 0xEA, 0x54, 0x82, 0x7B, 0x7D, 0x21, 0xB3, 0x6B, 0x7E, 0x25, 0x5A, 0x54, - 0x82, 0x7B, 0xB3, 0x6B, 0x7F, 0x21, 0x5A, 0x55, 0x82, 0x7B, 0xB3, 0x6B, 0x5A, 0x54, 0xC1, 0x78, - 0x30, 0x4D, 0x4A, 0x00, 0x89, 0x18, 0x6B, 0x6B, 0x8A, 0x08, 0x1A, 0x55, 0xAB, 0x6B, 0x61, 0x1C, - 0x1A, 0x55, 0x42, 0x7B, 0x6B, 0x6B, 0x5A, 0x54, 0x43, 0x7B, 0xAC, 0x6B, 0x31, 0x4E, 0x4A, 0x1C, - 0x63, 0x54, 0x31, 0x78, 0x6B, 0x6B, 0x89, 0x08, 0x99, 0x54, 0x31, 0x78, 0x56, 0x1C, 0xAB, 0x6B, - 0x89, 0x08, 0x99, 0x54, 0x61, 0x46, 0x09, 0x7C, 0x09, 0x09, 0x36, 0xD0, 0xC2, 0x7B, 0x7C, 0x21, - 0x10, 0x23, 0x1A, 0x43, 0x6B, 0x6B, 0x5A, 0x54, 0xAC, 0x6B, 0x7D, 0x23, 0x62, 0x54, 0x81, 0x7B, - 0x6A, 0x6B, 0x7E, 0x24, 0xD1, 0x54, 0xAA, 0x6B, 0xD1, 0x54, 0x6A, 0x6B, 0x7F, 0x23, 0x11, 0x55, - 0xAA, 0x6B, 0x11, 0x55, 0x6A, 0x6B, 0xD1, 0x54, 0xAA, 0x6B, 0xD1, 0x54, 0x02, 0x79, 0x00, 0xE0, - 0x0F, 0xE0, 0x69, 0x6B, 0x80, 0x31, 0x4A, 0x73, 0x03, 0x79, 0xAA, 0x6B, 0x80, 0x32, 0x53, 0x73, - 0x43, 0x7B, 0x0B, 0x74, 0x43, 0x7B, 0x01, 0x20, 0x13, 0x74, 0x88, 0x74, 0x90, 0x74, 0x76, 0x1C, - 0x13, 0xE0, 0x0C, 0x4C, 0x00, 0x22, 0x61, 0x6B, 0xCA, 0x54, 0xA5, 0x6B, 0x59, 0x1C, 0xEA, 0x54, - 0x63, 0x6B, 0x5A, 0x54, 0xA3, 0x6B, 0x4C, 0x1C, 0xA8, 0xE7, 0x68, 0x6B, 0x00, 0x21, 0x80, 0x30, - 0x81, 0x74, 0xA8, 0x6B, 0x76, 0x1C, 0x80, 0x30, 0x81, 0x74, 0xF0, 0xB2, 0xF8, 0xBD, 0x00, 0x00, - 0x14, 0x04, 0x00, 0x20, 0x1C, 0x00, 0x00, 0x20, 0x32, 0x01, 0x00, 0x20, 0x33, 0x01, 0x00, 0x20, - 0x2D, 0x01, 0x00, 0x20, 0x30, 0x01, 0x00, 0x20, 0x2E, 0x01, 0x00, 0x20, 0x31, 0x01, 0x00, 0x20, - 0x85, 0x03, 0x00, 0x20, 0x37, 0x01, 0x00, 0x20, 0x00, 0x20, 0x1B, 0xE0, 0x41, 0x00, 0x10, 0x4A, - 0x12, 0x68, 0x51, 0x5E, 0x0F, 0x4A, 0x91, 0x42, 0x05, 0xDD, 0x11, 0x46, 0x42, 0x00, 0x0C, 0x4B, - 0x1B, 0x68, 0x99, 0x52, 0x0D, 0xE0, 0x41, 0x00, 0x09, 0x4A, 0x12, 0x68, 0x51, 0x5E, 0x09, 0x4A, - 0xD2, 0x43, 0x91, 0x42, 0x05, 0xDA, 0x7F, 0x21, 0x49, 0x02, 0x42, 0x00, 0x04, 0x4B, 0x1B, 0x68, - 0x99, 0x52, 0x40, 0x1C, 0x23, 0x21, 0x49, 0x01, 0x88, 0x42, 0xDF, 0xD3, 0x70, 0x47, 0x00, 0x00, - 0xB0, 0x01, 0x00, 0x20, 0xFF, 0x01, 0x00, 0x00, 0x70, 0xB5, 0x12, 0x4C, 0x00, 0x21, 0x23, 0x46, - 0x80, 0x3B, 0x08, 0x46, 0x1E, 0x7E, 0xA5, 0x69, 0x05, 0xE0, 0x42, 0x00, 0xAA, 0x5E, 0x8A, 0x42, - 0x00, 0xDD, 0x11, 0x46, 0x40, 0x1C, 0xB0, 0x42, 0xF7, 0xDB, 0x0A, 0x48, 0xCA, 0x0F, 0x40, 0x38, - 0x01, 0x83, 0x00, 0x20, 0x51, 0x18, 0x4D, 0x10, 0x08, 0xE0, 0xA2, 0x69, 0x41, 0x00, 0x56, 0x5E, - 0xAE, 0x42, 0x02, 0xDA, 0xDE, 0x7C, 0x76, 0x1E, 0x56, 0x52, 0x40, 0x1C, 0x19, 0x7E, 0x88, 0x42, - 0xF3, 0xDB, 0x70, 0xBD, 0xA4, 0x01, 0x00, 0x20, 0xF8, 0xB5, 0x69, 0x48, 0x00, 0x90, 0x00, 0x78, - 0x00, 0x22, 0x00, 0x28, 0x7E, 0xD0, 0x66, 0x4B, 0x20, 0x3B, 0x19, 0x7E, 0x81, 0x42, 0x79, 0xD9, - 0x00, 0x20, 0x01, 0x46, 0x29, 0xE0, 0x62, 0x4B, 0x61, 0x4D, 0x60, 0x33, 0xDB, 0x6B, 0x00, 0x24, - 0x60, 0x35, 0x1C, 0x54, 0x6B, 0x69, 0x5E, 0x4E, 0x5C, 0x18, 0x65, 0x78, 0x5B, 0x5C, 0x60, 0x36, - 0x5B, 0x19, 0xF5, 0x6A, 0x44, 0x00, 0x5B, 0x08, 0x2B, 0x53, 0x73, 0x69, 0x87, 0x00, 0x5B, 0x18, - 0x9D, 0x78, 0xDE, 0x78, 0x56, 0x4B, 0xAD, 0x19, 0x60, 0x33, 0x1B, 0x6B, 0x6D, 0x08, 0x1D, 0x53, - 0x53, 0x4B, 0x54, 0x4E, 0x60, 0x33, 0x1C, 0x6C, 0x1D, 0x46, 0xE6, 0x51, 0x6D, 0x6C, 0x00, 0x23, - 0x51, 0x4C, 0x2B, 0x54, 0x23, 0x54, 0x40, 0x1C, 0x09, 0x1D, 0x4D, 0x4B, 0x20, 0x3B, 0x1C, 0x7E, - 0xA0, 0x42, 0xD0, 0xDB, 0x00, 0x21, 0x1E, 0xE0, 0x49, 0x4F, 0x48, 0x1C, 0x60, 0x37, 0x4B, 0x00, - 0x13, 0xE0, 0xFC, 0x6A, 0x46, 0x00, 0xE5, 0x5E, 0xA4, 0x5F, 0x2C, 0x1B, 0x3D, 0x6B, 0x64, 0x43, - 0xAE, 0x5F, 0xED, 0x5E, 0xAD, 0x1B, 0x6D, 0x43, 0x64, 0x19, 0x0C, 0x2C, 0x04, 0xDA, 0x7D, 0x6C, - 0x01, 0x24, 0x6C, 0x54, 0x7D, 0x6C, 0x2C, 0x54, 0x40, 0x1C, 0x3D, 0x4C, 0x20, 0x3C, 0x24, 0x7E, - 0xA0, 0x42, 0xE6, 0xDB, 0x49, 0x1C, 0x3A, 0x4B, 0x20, 0x3B, 0x18, 0x7E, 0x81, 0x42, 0xDB, 0xDB, - 0x00, 0x21, 0x33, 0xE0, 0x36, 0x4B, 0x60, 0x33, 0x58, 0x6C, 0x40, 0x5C, 0x00, 0x28, 0x2C, 0xD0, - 0x00, 0x20, 0x8C, 0x00, 0x4B, 0x00, 0x1C, 0xE0, 0x31, 0x4D, 0x34, 0x4E, 0x60, 0x35, 0xED, 0x6A, - 0x36, 0x5C, 0xED, 0x5E, 0xAF, 0x1B, 0x2E, 0x4D, 0x30, 0x4E, 0x60, 0x35, 0x2D, 0x6B, 0x0A, 0x36, - 0x36, 0x5C, 0xED, 0x5E, 0x7F, 0x43, 0xAD, 0x1B, 0x29, 0x4E, 0x6D, 0x43, 0x60, 0x36, 0x7D, 0x19, - 0x36, 0x6C, 0x00, 0xE0, 0x4B, 0xE0, 0x37, 0x59, 0xAF, 0x42, 0x01, 0xDD, 0x02, 0x46, 0x35, 0x51, - 0x40, 0x1C, 0x00, 0x9D, 0x2D, 0x78, 0xA8, 0x42, 0xDE, 0xDB, 0x21, 0x48, 0x60, 0x30, 0x83, 0x6B, - 0x5A, 0x54, 0xC0, 0x6B, 0x83, 0x5C, 0x5B, 0x1C, 0x83, 0x54, 0x49, 0x1C, 0x1C, 0x48, 0x20, 0x38, - 0x00, 0x7E, 0x81, 0x42, 0xC6, 0xDB, 0x00, 0x24, 0x2D, 0xE0, 0x19, 0x4D, 0x60, 0x35, 0xE8, 0x6B, - 0x00, 0x57, 0x01, 0x28, 0x26, 0xDD, 0x00, 0x21, 0x2B, 0x46, 0x08, 0x46, 0x80, 0x3B, 0x0A, 0xE0, - 0xAA, 0x6B, 0x12, 0x56, 0xA2, 0x42, 0x05, 0xD1, 0x0E, 0x46, 0x6A, 0x6C, 0x49, 0x1C, 0x02, 0x29, - 0x90, 0x55, 0x03, 0xDA, 0x40, 0x1C, 0x1A, 0x7E, 0x90, 0x42, 0xF1, 0xDB, 0x68, 0x6C, 0xEB, 0x6A, - 0x41, 0x78, 0x00, 0x78, 0x4A, 0x00, 0x46, 0x00, 0x9F, 0x5F, 0x9B, 0x5E, 0x2D, 0x6B, 0xFB, 0x1A, - 0xAA, 0x5E, 0xAD, 0x5F, 0x5B, 0x43, 0xAA, 0x1A, 0x52, 0x43, 0x9A, 0x18, 0x0C, 0x2A, 0x01, 0xDA, - 0x02, 0xF0, 0xC2, 0xFC, 0x64, 0x1C, 0x00, 0x98, 0x00, 0x78, 0x84, 0x42, 0xCD, 0xDB, 0xF8, 0xBD, - 0x44, 0x01, 0x00, 0x20, 0xFF, 0xFF, 0x7F, 0x00, 0x5E, 0x05, 0x00, 0x20, 0xEA, 0x06, 0x00, 0x20, - 0x10, 0xB5, 0x00, 0xBF, 0x01, 0x21, 0x08, 0x46, 0x88, 0x40, 0x16, 0x49, 0x08, 0x60, 0x00, 0xBF, - 0x59, 0x20, 0x15, 0x49, 0x08, 0x60, 0x16, 0x20, 0x08, 0x60, 0x88, 0x20, 0x08, 0x60, 0x00, 0xF0, - 0x3D, 0xFF, 0x7D, 0x24, 0xA4, 0x02, 0x05, 0xE0, 0x20, 0x46, 0x00, 0xF0, 0x47, 0xFF, 0xFF, 0x34, - 0xFF, 0x34, 0x02, 0x34, 0x0D, 0x48, 0x84, 0x42, 0xF6, 0xDB, 0x00, 0xF0, 0x27, 0xFF, 0x00, 0x20, - 0x09, 0x49, 0x08, 0x60, 0x00, 0xBF, 0x01, 0x21, 0x08, 0x46, 0x88, 0x40, 0x05, 0x49, 0x80, 0x39, - 0x08, 0x60, 0x00, 0xBF, 0x48, 0x17, 0x06, 0x49, 0x08, 0x60, 0x00, 0x20, 0x05, 0x49, 0x08, 0x70, - 0x10, 0xBD, 0x00, 0x00, 0x80, 0xE1, 0x00, 0xE0, 0x00, 0x01, 0x00, 0x50, 0xC8, 0xFC, 0x01, 0x00, - 0xFC, 0x00, 0x00, 0x20, 0xF6, 0x00, 0x00, 0x20, 0xF0, 0xB5, 0x0E, 0x4E, 0x8C, 0x46, 0x34, 0x7C, - 0x31, 0x46, 0x80, 0x31, 0xA4, 0x1C, 0x44, 0x43, 0x00, 0x25, 0xCC, 0x61, 0x0F, 0xE0, 0x14, 0x46, - 0x04, 0xE0, 0xCE, 0x69, 0x0F, 0x69, 0x36, 0x19, 0x64, 0x1C, 0xBD, 0x55, 0x9C, 0x42, 0xF8, 0xDD, - 0x04, 0x4E, 0xCC, 0x69, 0x36, 0x7C, 0xA4, 0x19, 0xA4, 0x1C, 0x40, 0x1C, 0xCC, 0x61, 0x60, 0x45, - 0xED, 0xDD, 0xF0, 0xBD, 0x24, 0x01, 0x00, 0x20, 0xF8, 0xB5, 0x01, 0x20, 0x05, 0xF0, 0x00, 0xFD, - 0x21, 0x4E, 0x59, 0x20, 0x30, 0x60, 0x16, 0x20, 0x30, 0x60, 0x88, 0x20, 0x30, 0x60, 0x00, 0xF0, - 0xE5, 0xFE, 0x1F, 0x20, 0x69, 0x46, 0x00, 0x03, 0x00, 0xF0, 0x18, 0xFF, 0x1B, 0x49, 0x00, 0x98, - 0x01, 0x24, 0x88, 0x42, 0x24, 0xD1, 0x1A, 0x4F, 0x1A, 0x4D, 0x3C, 0x68, 0x69, 0x46, 0x28, 0x46, - 0x00, 0xF0, 0x0C, 0xFF, 0x00, 0x20, 0x00, 0x99, 0x21, 0x54, 0x00, 0x99, 0x40, 0x1C, 0x09, 0x0A, - 0x00, 0x91, 0x04, 0x28, 0xF7, 0xD3, 0x13, 0x48, 0x24, 0x1D, 0x2D, 0x1D, 0x5E, 0x30, 0x85, 0x42, - 0xEC, 0xD3, 0x00, 0x24, 0x10, 0x49, 0x3A, 0x68, 0x20, 0x46, 0x0B, 0x18, 0x60, 0x33, 0x5B, 0x79, - 0x15, 0x5C, 0xAB, 0x42, 0x01, 0xD0, 0x01, 0x24, 0x02, 0xE0, 0x40, 0x1C, 0x5E, 0x28, 0xF4, 0xD3, - 0x01, 0xF0, 0x32, 0xFC, 0x00, 0xF0, 0xAA, 0xFE, 0x00, 0x20, 0x30, 0x60, 0x01, 0x20, 0x05, 0xF0, - 0xDD, 0xFC, 0xE0, 0xB2, 0xF8, 0xBD, 0x00, 0x00, 0x00, 0x01, 0x00, 0x50, 0x21, 0x43, 0x65, 0x87, - 0xB4, 0x01, 0x00, 0x20, 0x04, 0xF0, 0x01, 0x00, 0xB4, 0x03, 0x00, 0x20, 0x04, 0x4B, 0x40, 0x00, - 0x1A, 0x5A, 0x00, 0x2A, 0x01, 0xD0, 0x51, 0x18, 0x49, 0x08, 0x19, 0x52, 0x70, 0x47, 0x00, 0x00, - 0x38, 0x1A, 0x00, 0x20, 0xF0, 0xB5, 0x13, 0x4F, 0x00, 0x20, 0x39, 0x46, 0x24, 0x39, 0x10, 0x4D, - 0x03, 0x46, 0x4E, 0x79, 0x19, 0xE0, 0x0E, 0x4A, 0x0D, 0x4C, 0x41, 0x00, 0x10, 0x3A, 0x20, 0x3C, - 0x52, 0x5A, 0x64, 0x5A, 0x12, 0x1B, 0x0B, 0x4C, 0x12, 0xB2, 0x08, 0x34, 0x24, 0x5C, 0x54, 0x43, - 0x22, 0x11, 0x6C, 0x5E, 0x12, 0xB2, 0x54, 0x43, 0x00, 0x2C, 0x03, 0xDA, 0x04, 0x4C, 0x10, 0x34, - 0x63, 0x52, 0x3B, 0x54, 0x40, 0x1C, 0x6A, 0x52, 0xC0, 0xB2, 0xB0, 0x42, 0xE3, 0xD3, 0xF0, 0xBD, - 0x58, 0x1A, 0x00, 0x20, 0xA4, 0x03, 0x00, 0x20, 0x70, 0xB5, 0x16, 0x4C, 0x60, 0x7A, 0x00, 0x25, - 0x00, 0x28, 0x0D, 0xD0, 0x65, 0x72, 0x03, 0xF0, 0xC7, 0xFF, 0xFF, 0xF7, 0x6D, 0xFF, 0x00, 0x28, - 0x06, 0xD0, 0x06, 0xF0, 0xE9, 0xFB, 0x01, 0x20, 0xE0, 0x74, 0x60, 0x71, 0x60, 0x73, 0x20, 0x73, - 0x20, 0x7D, 0x00, 0x28, 0x03, 0xD0, 0x07, 0xF0, 0x0B, 0xFB, 0x25, 0x75, 0x65, 0x71, 0xA0, 0x7B, - 0x00, 0x28, 0x02, 0xD0, 0x01, 0x20, 0x09, 0xF0, 0xBF, 0xFA, 0x60, 0x7B, 0x00, 0x28, 0x02, 0xD0, - 0x03, 0x20, 0x09, 0xF0, 0xB9, 0xFA, 0x04, 0x48, 0x00, 0x78, 0xC9, 0x28, 0x01, 0xD1, 0x06, 0xF0, - 0x01, 0xFA, 0x70, 0xBD, 0x1C, 0x00, 0x00, 0x20, 0x2B, 0x01, 0x00, 0x20, 0x10, 0xB5, 0x00, 0x20, - 0x76, 0x49, 0x08, 0x70, 0x76, 0x49, 0x08, 0x70, 0x01, 0x20, 0x76, 0x49, 0x08, 0x70, 0x06, 0xF0, - 0x9F, 0xFA, 0x02, 0xF0, 0xE1, 0xFC, 0xFF, 0xF7, 0xEF, 0xFA, 0x73, 0x48, 0x00, 0x78, 0x04, 0x28, - 0x0A, 0xDA, 0x71, 0x48, 0x00, 0x78, 0x01, 0x28, 0x06, 0xD0, 0x70, 0x48, 0x00, 0x78, 0x01, 0x28, - 0x02, 0xD1, 0x07, 0xF0, 0x0D, 0xFB, 0x07, 0xE0, 0x6D, 0x48, 0x00, 0x68, 0x00, 0x28, 0x03, 0xDD, - 0xFF, 0xF7, 0x9A, 0xFD, 0x06, 0xF0, 0x10, 0xFB, 0x69, 0x48, 0x00, 0x68, 0x01, 0x28, 0x7D, 0xDD, - 0x00, 0x20, 0x64, 0x49, 0x08, 0x70, 0x67, 0x49, 0x08, 0x5E, 0x67, 0x49, 0x09, 0x78, 0x88, 0x42, - 0x07, 0xDC, 0x65, 0x48, 0x00, 0x78, 0x40, 0x42, 0x64, 0x49, 0x00, 0x22, 0x8A, 0x5E, 0x90, 0x42, - 0x06, 0xDD, 0x5A, 0x48, 0x00, 0x78, 0x01, 0x28, 0x08, 0xD1, 0x59, 0x49, 0x08, 0x70, 0x05, 0xE0, - 0x01, 0x20, 0x56, 0x49, 0x08, 0x70, 0x00, 0x20, 0x5D, 0x49, 0x08, 0x70, 0x58, 0x48, 0x00, 0x68, - 0x0A, 0x28, 0x7E, 0xDB, 0x5B, 0x48, 0x00, 0x78, 0x01, 0x28, 0x29, 0xD1, 0x56, 0x4A, 0x12, 0x78, - 0x53, 0x00, 0xD1, 0x18, 0xCA, 0x0F, 0x52, 0x18, 0x52, 0x10, 0x52, 0x4B, 0x00, 0x24, 0x1C, 0x5F, - 0xA2, 0x42, 0x0C, 0xDB, 0x50, 0x4A, 0x12, 0x78, 0x53, 0x00, 0xD0, 0x18, 0xC2, 0x0F, 0x12, 0x18, - 0x52, 0x10, 0x52, 0x42, 0x4D, 0x4B, 0x00, 0x24, 0x1C, 0x5F, 0xA2, 0x42, 0x11, 0xDD, 0x4E, 0x49, - 0x00, 0x20, 0x08, 0x5E, 0x4D, 0x49, 0x88, 0x42, 0x07, 0xDA, 0x4B, 0x48, 0x00, 0x88, 0x4C, 0x49, - 0x09, 0x88, 0x40, 0x18, 0x00, 0xB2, 0x48, 0x49, 0x08, 0x80, 0x01, 0x20, 0x49, 0x49, 0x08, 0x70, - 0x5B, 0xE0, 0x41, 0x4A, 0x12, 0x78, 0x53, 0x00, 0xD1, 0x18, 0xCA, 0x17, 0x92, 0x0F, 0x52, 0x18, - 0x92, 0x10, 0x3C, 0x4B, 0x00, 0x24, 0x1C, 0x5F, 0xA2, 0x42, 0x0D, 0xDB, 0x3A, 0x4A, 0x12, 0x78, - 0x53, 0x00, 0xD0, 0x18, 0xC2, 0x17, 0x92, 0x0F, 0x12, 0x18, 0x92, 0x10, 0x52, 0x42, 0x37, 0x4B, - 0x00, 0x24, 0x1C, 0x5F, 0xA2, 0x42, 0x12, 0xDD, 0x37, 0x49, 0x00, 0x20, 0x08, 0x5E, 0x37, 0x49, - 0x88, 0x42, 0x07, 0xDA, 0x34, 0x48, 0x00, 0x88, 0x35, 0x49, 0x09, 0x88, 0x40, 0x18, 0x00, 0xB2, - 0x31, 0x49, 0x08, 0x80, 0x02, 0x20, 0x33, 0x49, 0x08, 0x70, 0x2E, 0xE0, 0x38, 0xE0, 0x28, 0x4A, - 0x12, 0x68, 0x64, 0x2A, 0x29, 0xDB, 0x2F, 0x4A, 0x12, 0x78, 0x03, 0x2A, 0x25, 0xDA, 0x26, 0x4A, - 0x11, 0x78, 0xCA, 0x0F, 0x52, 0x18, 0x52, 0x10, 0x22, 0x4B, 0x00, 0x24, 0x1C, 0x5F, 0xA2, 0x42, - 0x1B, 0xDD, 0x21, 0x4A, 0x10, 0x78, 0xC2, 0x0F, 0x12, 0x18, 0x52, 0x10, 0x52, 0x42, 0x1F, 0x4B, - 0x00, 0x24, 0x1C, 0x5F, 0xA2, 0x42, 0x10, 0xDA, 0x1F, 0x49, 0x00, 0x20, 0x08, 0x5E, 0x1F, 0x49, - 0x00, 0xE0, 0x07, 0xE0, 0x88, 0x42, 0x08, 0xDA, 0x00, 0x20, 0x1B, 0x49, 0x08, 0x80, 0x1D, 0x49, - 0x08, 0x70, 0x02, 0xE0, 0x01, 0x20, 0x1B, 0x49, 0x08, 0x70, 0x11, 0x48, 0x00, 0x68, 0x64, 0x28, - 0x03, 0xDB, 0x18, 0x48, 0x00, 0x78, 0x00, 0x28, 0x02, 0xD0, 0x01, 0x20, 0x09, 0x49, 0x08, 0x70, - 0x07, 0x48, 0x00, 0x78, 0x01, 0x28, 0x02, 0xD1, 0x06, 0xF0, 0xF2, 0xFB, 0x01, 0xE0, 0x06, 0xF0, - 0x87, 0xFE, 0x02, 0x20, 0x10, 0x49, 0x08, 0x70, 0x10, 0xBD, 0x00, 0x00, 0xF6, 0x00, 0x00, 0x20, - 0x00, 0x01, 0x00, 0x20, 0xF7, 0x00, 0x00, 0x20, 0xEE, 0x00, 0x00, 0x20, 0xDB, 0x00, 0x00, 0x20, - 0xFC, 0x00, 0x00, 0x20, 0x74, 0x01, 0x00, 0x20, 0x01, 0x01, 0x00, 0x20, 0x72, 0x01, 0x00, 0x20, - 0xEC, 0x00, 0x00, 0x20, 0xDA, 0x00, 0x00, 0x20, 0xF8, 0x00, 0x00, 0x20, 0x60, 0xEA, 0x00, 0x00, - 0x4A, 0x00, 0x00, 0x20, 0xFA, 0x00, 0x00, 0x20, 0x1C, 0x02, 0x00, 0x20, 0xFF, 0xB5, 0xC4, 0x4A, - 0x00, 0x20, 0x13, 0x46, 0x80, 0x3B, 0x19, 0x46, 0xD0, 0x61, 0x40, 0x31, 0x18, 0x46, 0x20, 0x30, - 0x03, 0x90, 0xBF, 0x48, 0x84, 0x6A, 0xC2, 0x69, 0xA0, 0x5C, 0x00, 0x28, 0x7E, 0xD0, 0xBD, 0x4D, - 0xAC, 0x5C, 0x00, 0x2C, 0x12, 0xD1, 0x03, 0x98, 0x80, 0x78, 0x00, 0x28, 0x01, 0xD1, 0xA0, 0x20, - 0x0A, 0xE0, 0x01, 0x28, 0x01, 0xD1, 0x80, 0x20, 0x06, 0xE0, 0x02, 0x28, 0x01, 0xD1, 0x40, 0x20, - 0x02, 0xE0, 0x03, 0x28, 0x05, 0xD1, 0xD8, 0x78, 0x88, 0x82, 0x02, 0xE0, 0xD8, 0x78, 0xC0, 0x00, - 0xFA, 0xE7, 0x24, 0x07, 0x00, 0x20, 0x24, 0x0F, 0x01, 0x2C, 0x1C, 0xD1, 0xAC, 0x4D, 0x54, 0x00, - 0x2A, 0x6A, 0xAD, 0x4D, 0x94, 0x46, 0x2E, 0x5F, 0xDD, 0x78, 0x12, 0x5F, 0x77, 0x19, 0xBA, 0x42, - 0x04, 0xDD, 0x01, 0x20, 0x52, 0x1B, 0x65, 0x46, 0x2A, 0x53, 0x51, 0xE0, 0x14, 0x27, 0xCF, 0x5F, - 0xD7, 0x19, 0xB7, 0x42, 0x4C, 0xDA, 0x01, 0x20, 0x52, 0x19, 0x65, 0x46, 0xA0, 0x4E, 0x2A, 0x53, - 0xA0, 0x4C, 0xF2, 0x69, 0x3D, 0xE0, 0x9E, 0x4D, 0x02, 0x2C, 0x17, 0xD1, 0x2F, 0x6A, 0x54, 0x00, - 0xDD, 0x78, 0x3A, 0x5F, 0xAC, 0x46, 0x56, 0x19, 0x9B, 0x4D, 0x2D, 0x5F, 0xAE, 0x42, 0x02, 0xDA, - 0x01, 0x20, 0x3E, 0x53, 0x34, 0xE0, 0x14, 0x26, 0x8E, 0x5F, 0xAE, 0x19, 0xB2, 0x42, 0x2F, 0xDD, - 0x01, 0x20, 0x66, 0x46, 0x92, 0x1B, 0x92, 0x4D, 0x3A, 0x53, 0x10, 0xE0, 0x54, 0x00, 0x2A, 0x6A, - 0x91, 0x4D, 0x94, 0x46, 0x2E, 0x5F, 0x14, 0x25, 0x4D, 0x5F, 0x12, 0x5F, 0x77, 0x19, 0xBA, 0x42, - 0x0C, 0xDD, 0xDE, 0x78, 0x01, 0x20, 0x92, 0x1B, 0x89, 0x4D, 0x66, 0x46, 0x32, 0x53, 0x89, 0x4C, - 0xEA, 0x69, 0xA5, 0x5C, 0x2D, 0x09, 0x2D, 0x01, 0x6D, 0x1C, 0x0E, 0xE0, 0x84, 0x4F, 0x55, 0x19, - 0xB5, 0x42, 0x0D, 0xDA, 0xDE, 0x78, 0x01, 0x20, 0x92, 0x19, 0x66, 0x46, 0x32, 0x53, 0x81, 0x4C, - 0xFA, 0x69, 0xA5, 0x5C, 0x2D, 0x09, 0x2D, 0x01, 0xAD, 0x1C, 0x00, 0xE0, 0xF0, 0xE0, 0xA5, 0x54, - 0x7B, 0x4C, 0x7C, 0x4D, 0xE2, 0x69, 0xAD, 0x5C, 0x2D, 0x09, 0x01, 0x2D, 0x1F, 0xD1, 0x55, 0x00, - 0x02, 0x95, 0x79, 0x4E, 0x62, 0x6A, 0x14, 0x36, 0x94, 0x46, 0x52, 0x5F, 0x76, 0x5F, 0xDD, 0x78, - 0x37, 0x46, 0x76, 0x19, 0xB2, 0x42, 0x06, 0xDD, 0x10, 0x26, 0x30, 0x43, 0x52, 0x1B, 0x02, 0x9E, - 0x65, 0x46, 0xAA, 0x53, 0x52, 0xE0, 0x14, 0x26, 0x8E, 0x5F, 0x96, 0x19, 0xBE, 0x42, 0x4D, 0xDA, - 0x10, 0x26, 0x30, 0x43, 0x52, 0x19, 0x02, 0x9D, 0x66, 0x46, 0x72, 0x53, 0x3F, 0xE0, 0x02, 0x2D, - 0x19, 0xD1, 0x57, 0x00, 0x62, 0x6A, 0x68, 0x4D, 0x94, 0x46, 0xD2, 0x5F, 0xDE, 0x78, 0x14, 0x35, - 0x01, 0x96, 0xED, 0x5F, 0x96, 0x19, 0xAE, 0x42, 0x04, 0xDA, 0x10, 0x22, 0x10, 0x43, 0x62, 0x46, - 0xD6, 0x53, 0x33, 0xE0, 0x14, 0x26, 0x8E, 0x5F, 0xAD, 0x19, 0xAA, 0x42, 0x2E, 0xDD, 0x10, 0x25, - 0x28, 0x43, 0x01, 0x9D, 0x0F, 0xE0, 0x57, 0x00, 0x5B, 0x4D, 0x62, 0x6A, 0x14, 0x35, 0x94, 0x46, - 0xD2, 0x5F, 0xED, 0x5F, 0x14, 0x26, 0x00, 0x95, 0x8E, 0x5F, 0xAD, 0x19, 0xAA, 0x42, 0x0C, 0xDD, - 0x10, 0x25, 0x28, 0x43, 0xDD, 0x78, 0x52, 0x1B, 0x65, 0x46, 0xEA, 0x53, 0x51, 0x4D, 0xE2, 0x69, - 0xAE, 0x5C, 0x36, 0x07, 0x36, 0x0F, 0x10, 0x36, 0x0F, 0xE0, 0x95, 0x19, 0x00, 0x9E, 0xB5, 0x42, - 0x0C, 0xDA, 0x10, 0x25, 0x28, 0x43, 0xDD, 0x78, 0x52, 0x19, 0x65, 0x46, 0xEA, 0x53, 0x49, 0x4D, - 0xE2, 0x69, 0xAE, 0x5C, 0x36, 0x07, 0x36, 0x0F, 0x20, 0x36, 0xAE, 0x54, 0x00, 0x28, 0x0D, 0xD1, - 0x45, 0x4A, 0xE0, 0x69, 0x28, 0x32, 0x40, 0x00, 0x15, 0x5A, 0x26, 0x6A, 0x14, 0x32, 0x35, 0x52, - 0xE0, 0x69, 0x65, 0x6A, 0x40, 0x00, 0x12, 0x5A, 0x2A, 0x52, 0x53, 0xE0, 0x03, 0x9A, 0x01, 0x25, - 0x55, 0x70, 0x02, 0x07, 0x12, 0x0F, 0x01, 0x2A, 0x21, 0xD1, 0xE2, 0x69, 0x25, 0x6A, 0x52, 0x00, - 0x39, 0x4E, 0xAF, 0x5A, 0xB7, 0x52, 0xAD, 0x5A, 0x28, 0x36, 0xB5, 0x52, 0x05, 0x06, 0x2D, 0x0F, - 0x15, 0xD1, 0x35, 0x4F, 0x65, 0x6A, 0x3C, 0x37, 0xBF, 0x5E, 0xAE, 0x5E, 0xBC, 0x46, 0x3F, 0x1D, - 0xBE, 0x42, 0x01, 0xDD, 0x36, 0x1F, 0x02, 0xE0, 0x36, 0x1D, 0x66, 0x45, 0x05, 0xDA, 0xAE, 0x52, - 0xE2, 0x69, 0x2D, 0x4D, 0x52, 0x00, 0x3C, 0x35, 0x00, 0xE0, 0x66, 0x46, 0xAE, 0x52, 0x02, 0x06, - 0x12, 0x0F, 0x01, 0x2A, 0x26, 0xD1, 0xE2, 0x69, 0x27, 0x4E, 0x65, 0x6A, 0x52, 0x00, 0x14, 0x36, - 0xAF, 0x5A, 0xB7, 0x52, 0x28, 0x36, 0xAD, 0x5A, 0xB5, 0x52, 0x00, 0x07, 0x1A, 0xD1, 0x22, 0x4D, - 0x20, 0x6A, 0x28, 0x35, 0xAD, 0x5E, 0x86, 0x5E, 0x2F, 0x1D, 0xBE, 0x42, 0x06, 0xDD, 0x36, 0x1F, - 0x86, 0x52, 0xE0, 0x69, 0x1C, 0x4A, 0x40, 0x00, 0x28, 0x32, 0x08, 0xE0, 0x1A, 0x4F, 0x36, 0x1D, - 0x28, 0x37, 0xAE, 0x42, 0x05, 0xDA, 0x86, 0x52, 0xE0, 0x69, 0x3A, 0x46, 0x40, 0x00, 0x16, 0x52, - 0x00, 0xE0, 0x85, 0x52, 0x12, 0x4A, 0x13, 0x4C, 0x90, 0x6A, 0xD2, 0x69, 0x0A, 0x3C, 0xA4, 0x5C, - 0x86, 0x5C, 0xA4, 0x46, 0x34, 0x1B, 0x65, 0xB2, 0xDC, 0x78, 0x64, 0x00, 0xAC, 0x42, 0x01, 0xDA, - 0x34, 0x1B, 0x05, 0xE0, 0x67, 0x42, 0xAF, 0x42, 0x01, 0xDD, 0x34, 0x19, 0x00, 0xE0, 0x64, 0x46, - 0x84, 0x54, 0x07, 0x48, 0x07, 0x4C, 0x82, 0x6A, 0xC0, 0x69, 0x0A, 0x3C, 0x12, 0x5C, 0x22, 0x54, - 0x03, 0x4A, 0xD0, 0x69, 0x40, 0x1C, 0xD0, 0x61, 0x0A, 0x28, 0x00, 0xDA, 0x81, 0xE6, 0xFF, 0xBD, - 0xA4, 0x01, 0x00, 0x20, 0x5E, 0x05, 0x00, 0x20, 0x9A, 0x06, 0x00, 0x20, 0xF0, 0xB5, 0x86, 0xB0, - 0x01, 0x20, 0x00, 0x90, 0x8C, 0x48, 0x00, 0x21, 0x05, 0x90, 0x41, 0x70, 0x20, 0x38, 0x02, 0x7E, - 0x05, 0x98, 0x02, 0x70, 0x88, 0x48, 0x60, 0x30, 0xC1, 0x61, 0x87, 0x49, 0x60, 0x31, 0x88, 0x6A, - 0xC9, 0x69, 0x04, 0x90, 0x40, 0x5C, 0x00, 0x28, 0x1B, 0xD1, 0x08, 0x46, 0x06, 0x22, 0x50, 0x43, - 0x82, 0x4C, 0x02, 0x46, 0x20, 0x5E, 0x40, 0x1C, 0x0E, 0xD0, 0x00, 0x20, 0x43, 0x1E, 0x12, 0x19, - 0x44, 0x00, 0x40, 0x1C, 0x13, 0x53, 0x03, 0x28, 0xFA, 0xDB, 0x7C, 0x4A, 0x00, 0x20, 0x6E, 0x3A, - 0x50, 0x54, 0x05, 0x98, 0x01, 0x22, 0x42, 0x70, 0x78, 0x4A, 0x00, 0x20, 0x82, 0x3A, 0x50, 0x54, - 0xD4, 0xE0, 0x00, 0x20, 0x00, 0x90, 0x08, 0x46, 0x06, 0x22, 0x74, 0x4B, 0x72, 0x4C, 0x50, 0x43, - 0x1A, 0x5E, 0x60, 0x34, 0x55, 0x1C, 0x36, 0xD1, 0x1D, 0x46, 0x3C, 0x35, 0x45, 0x19, 0xC0, 0x18, - 0x03, 0x90, 0x63, 0x6A, 0x00, 0x22, 0x24, 0x6A, 0xAC, 0x46, 0x48, 0x00, 0x55, 0x00, 0x03, 0x9F, - 0x26, 0x5A, 0x7E, 0x53, 0x1F, 0x5A, 0x66, 0x46, 0x52, 0x1C, 0x77, 0x53, 0x03, 0x2A, 0xF5, 0xDB, - 0x66, 0x4D, 0x22, 0x5A, 0x78, 0x35, 0x2A, 0x52, 0x1A, 0x5A, 0x14, 0x35, 0x2A, 0x52, 0x00, 0x22, - 0x14, 0x35, 0x6A, 0x54, 0x04, 0x9D, 0x61, 0x4E, 0x6D, 0x5C, 0x82, 0x3E, 0x75, 0x54, 0x35, 0x46, - 0x0A, 0x35, 0x6A, 0x54, 0x5D, 0x4A, 0x21, 0x5A, 0xC4, 0x32, 0x11, 0x52, 0x19, 0x5A, 0x14, 0x32, - 0x11, 0x52, 0x21, 0x5A, 0x14, 0x32, 0x11, 0x52, 0x19, 0x5A, 0x14, 0x32, 0x11, 0x52, 0x05, 0x99, - 0x01, 0x20, 0x48, 0x70, 0x92, 0xE0, 0x48, 0x00, 0x21, 0x6A, 0x08, 0x5E, 0x80, 0x1A, 0xFE, 0xF7, - 0xA6, 0xFC, 0x03, 0x21, 0x89, 0x02, 0x88, 0x42, 0x0D, 0xD8, 0xE0, 0x69, 0x65, 0x6A, 0x42, 0x00, - 0xAD, 0x5E, 0x06, 0x22, 0x50, 0x43, 0x4D, 0x4A, 0x3C, 0x32, 0x10, 0x5E, 0x28, 0x1A, 0xFE, 0xF7, - 0x96, 0xFC, 0x88, 0x42, 0x12, 0xD9, 0x48, 0x49, 0x20, 0x39, 0xC8, 0x7F, 0x0A, 0x28, 0x0D, 0xD2, - 0x40, 0x1C, 0xC8, 0x77, 0xE0, 0x69, 0x22, 0x6A, 0x41, 0x00, 0x06, 0x25, 0x52, 0x5A, 0x68, 0x43, - 0x1A, 0x52, 0x42, 0x4A, 0x65, 0x6A, 0x3C, 0x32, 0x69, 0x5A, 0x11, 0x52, 0x3E, 0x48, 0x20, 0x38, - 0xC0, 0x7F, 0x0A, 0x28, 0x07, 0xD1, 0xE0, 0x69, 0x21, 0x6A, 0x40, 0x00, 0x09, 0x5E, 0x8C, 0x46, - 0x61, 0x6A, 0x08, 0x5E, 0x2A, 0xE0, 0xE1, 0x69, 0x06, 0x20, 0x48, 0x43, 0xC6, 0x18, 0x02, 0x22, - 0x04, 0x25, 0xB2, 0x5E, 0x75, 0x5F, 0x49, 0x00, 0x52, 0x19, 0x25, 0x6A, 0x1E, 0x5E, 0x6D, 0x5E, - 0x76, 0x00, 0xAD, 0x00, 0xAD, 0x19, 0x52, 0x19, 0x12, 0x1D, 0xD5, 0x17, 0x6D, 0x0F, 0xAA, 0x18, - 0x2E, 0x4F, 0xD2, 0x10, 0x3C, 0x37, 0xC5, 0x19, 0x94, 0x46, 0x02, 0x22, 0x04, 0x26, 0xAA, 0x5E, - 0xAE, 0x5F, 0x65, 0x6A, 0x38, 0x5E, 0x69, 0x5E, 0x40, 0x00, 0x89, 0x00, 0x92, 0x19, 0x08, 0x18, - 0x10, 0x18, 0x00, 0x1D, 0xC1, 0x17, 0x49, 0x0F, 0x08, 0x18, 0xC0, 0x10, 0x02, 0x90, 0x23, 0x49, - 0xE5, 0x69, 0xA0, 0x6A, 0x82, 0x39, 0x40, 0x5D, 0x49, 0x5D, 0x2B, 0x46, 0x40, 0x18, 0x06, 0x21, - 0x4B, 0x43, 0x1E, 0x49, 0x40, 0x08, 0x3C, 0x31, 0x01, 0x90, 0x5A, 0x18, 0x01, 0x20, 0x3C, 0x39, - 0x5C, 0x18, 0x41, 0x00, 0x66, 0x5A, 0x67, 0x18, 0x7E, 0x80, 0x56, 0x5A, 0x51, 0x18, 0x4E, 0x80, - 0x40, 0x1E, 0xF6, 0xD5, 0x14, 0x48, 0x15, 0x4A, 0x61, 0x46, 0x14, 0x4C, 0x60, 0x30, 0xD1, 0x52, - 0x3C, 0x34, 0x02, 0x9A, 0xE2, 0x52, 0x04, 0x6A, 0x6B, 0x00, 0xE1, 0x52, 0xC1, 0x69, 0x44, 0x6A, - 0x4B, 0x00, 0x01, 0x99, 0xE2, 0x52, 0x82, 0x6A, 0xC0, 0x69, 0x11, 0x54, 0x0A, 0x49, 0x60, 0x31, - 0xC8, 0x69, 0x40, 0x1C, 0xC8, 0x61, 0x0A, 0x28, 0x00, 0xDA, 0xFE, 0xE6, 0x08, 0x46, 0x80, 0x38, - 0xC1, 0x7F, 0x00, 0x29, 0x06, 0xD0, 0x0A, 0x21, 0xC1, 0x77, 0x00, 0x99, 0x01, 0x29, 0x01, 0xD1, - 0x00, 0x21, 0xC1, 0x77, 0x06, 0xB0, 0xF0, 0xBD, 0x44, 0x01, 0x00, 0x20, 0xD6, 0x05, 0x00, 0x20, - 0xFE, 0xB5, 0x03, 0xF0, 0x5D, 0xFC, 0x90, 0x49, 0x00, 0x20, 0x08, 0x70, 0x8F, 0x49, 0x48, 0x85, - 0x88, 0x85, 0x04, 0xF0, 0x1F, 0xF9, 0x8E, 0x48, 0x00, 0x7B, 0x00, 0x07, 0x00, 0x0F, 0x03, 0x28, - 0x03, 0xD1, 0x8C, 0x48, 0x01, 0x78, 0x8C, 0x48, 0x01, 0x70, 0x00, 0x25, 0xEB, 0xE0, 0x8B, 0x48, - 0x00, 0x68, 0x40, 0x5D, 0x00, 0x28, 0x7E, 0xD0, 0x89, 0x49, 0x6C, 0x00, 0x89, 0x4A, 0x0E, 0x68, - 0x12, 0x5B, 0x30, 0x5F, 0x82, 0x1A, 0x12, 0xB2, 0x94, 0x46, 0x00, 0x2A, 0x03, 0xDA, 0x62, 0x46, - 0x52, 0x42, 0x12, 0xB2, 0x94, 0x46, 0x2A, 0x46, 0x06, 0x21, 0x4A, 0x43, 0x82, 0x49, 0x51, 0x18, - 0x49, 0x88, 0x40, 0x1A, 0x01, 0xB2, 0x00, 0x29, 0x01, 0xDA, 0x48, 0x42, 0x01, 0xB2, 0x7F, 0x48, - 0x03, 0x68, 0x7F, 0x48, 0x01, 0x93, 0x1B, 0x5F, 0x00, 0x5B, 0x18, 0x1A, 0x00, 0xB2, 0x00, 0x28, - 0x01, 0xDA, 0x40, 0x42, 0x00, 0xB2, 0x7B, 0x4F, 0xD2, 0x19, 0x52, 0x88, 0x9A, 0x1A, 0x12, 0xB2, - 0x00, 0x2A, 0x01, 0xDA, 0x52, 0x42, 0x12, 0xB2, 0x01, 0x27, 0x7F, 0x02, 0xBC, 0x45, 0x07, 0xDA, - 0xB8, 0x42, 0x05, 0xDA, 0x69, 0x4B, 0x01, 0x20, 0x9F, 0x8D, 0xA8, 0x40, 0x38, 0x43, 0x98, 0x85, - 0xAA, 0x29, 0x01, 0xDC, 0xAA, 0x2A, 0x0F, 0xDD, 0x64, 0x48, 0x01, 0x21, 0x82, 0x8D, 0xA9, 0x40, - 0x11, 0x43, 0x81, 0x85, 0x67, 0x49, 0x30, 0x5B, 0x08, 0x53, 0x01, 0x98, 0x68, 0x49, 0x00, 0x5B, - 0x08, 0x53, 0x69, 0x49, 0x00, 0x20, 0x48, 0x55, 0x67, 0x49, 0x48, 0x5D, 0x42, 0x1C, 0x4A, 0x55, - 0x64, 0x28, 0x12, 0xD9, 0x5F, 0x4A, 0x30, 0x5F, 0x13, 0x5F, 0xC0, 0x18, 0xC3, 0x0F, 0x18, 0x18, - 0x40, 0x10, 0x10, 0x53, 0x01, 0x98, 0x5E, 0x4A, 0x00, 0x5F, 0x13, 0x5F, 0xC0, 0x18, 0xC3, 0x0F, - 0x18, 0x18, 0x40, 0x10, 0x10, 0x53, 0x00, 0x20, 0x48, 0x55, 0x51, 0x48, 0x40, 0x38, 0xC0, 0x7A, - 0x40, 0x06, 0x17, 0xD4, 0x4D, 0x4F, 0x26, 0x21, 0x30, 0x5F, 0x79, 0x5E, 0x48, 0x43, 0x57, 0x49, - 0x09, 0x88, 0xFE, 0xF7, 0x65, 0xFA, 0x30, 0x53, 0x50, 0x48, 0x28, 0x21, 0x06, 0x68, 0x79, 0x5E, - 0x30, 0x5F, 0x48, 0x43, 0x00, 0xE0, 0x65, 0xE0, 0x51, 0x49, 0x09, 0x88, 0xFE, 0xF7, 0x58, 0xFA, - 0x30, 0x53, 0x18, 0xE0, 0x01, 0x98, 0x41, 0x4F, 0x26, 0x21, 0x00, 0x5F, 0x79, 0x5E, 0x48, 0x43, - 0x4B, 0x49, 0x09, 0x88, 0xFE, 0xF7, 0x4C, 0xFA, 0x00, 0x90, 0x28, 0x21, 0x30, 0x5F, 0x79, 0x5E, - 0x48, 0x43, 0x46, 0x49, 0x09, 0x88, 0xFE, 0xF7, 0x43, 0xFA, 0x01, 0x99, 0x08, 0x53, 0x3C, 0x49, - 0x00, 0x98, 0x09, 0x68, 0x08, 0x53, 0x43, 0x48, 0x00, 0x78, 0x00, 0x28, 0x1E, 0xD0, 0x01, 0x28, - 0x0F, 0xD0, 0x02, 0x28, 0x12, 0xD0, 0x03, 0x28, 0x18, 0xD1, 0x35, 0x48, 0x2F, 0x4A, 0x00, 0x68, - 0xD3, 0x8C, 0x01, 0x5B, 0x59, 0x1A, 0x49, 0x1E, 0x01, 0x53, 0x34, 0x48, 0x11, 0x8D, 0x00, 0x68, - 0x08, 0xE0, 0x2F, 0x48, 0x29, 0x49, 0x00, 0x68, 0xC9, 0x8C, 0x03, 0xE0, 0x2F, 0x48, 0x27, 0x49, - 0x00, 0x68, 0x09, 0x8D, 0x02, 0x5B, 0x89, 0x1A, 0x49, 0x1E, 0x01, 0x53, 0x28, 0x4B, 0x23, 0x4A, - 0x18, 0x68, 0x26, 0x21, 0x06, 0x5F, 0x51, 0x5E, 0x8E, 0x42, 0x01, 0xDB, 0x49, 0x1E, 0x01, 0x53, - 0x18, 0x68, 0x01, 0x5F, 0x00, 0x29, 0x01, 0xDA, 0x00, 0x21, 0x01, 0x53, 0x23, 0x4B, 0x28, 0x20, - 0x19, 0x68, 0x10, 0x5E, 0x0E, 0x5F, 0x86, 0x42, 0x01, 0xDB, 0x40, 0x1E, 0x08, 0x53, 0x18, 0x68, - 0x01, 0x5F, 0x00, 0x29, 0x01, 0xDA, 0x00, 0x21, 0x01, 0x53, 0x01, 0x20, 0x51, 0x8D, 0xA8, 0x40, - 0x08, 0x43, 0x50, 0x85, 0x6D, 0x1C, 0x20, 0x48, 0x00, 0x78, 0x85, 0x42, 0x00, 0xDA, 0x0E, 0xE7, - 0x11, 0x48, 0x01, 0x78, 0x0D, 0x48, 0x42, 0x8D, 0x11, 0x43, 0x07, 0xD0, 0x01, 0x21, 0xC1, 0x72, - 0x09, 0x4A, 0x11, 0x70, 0x00, 0x22, 0x82, 0x72, 0x01, 0x76, 0xFE, 0xBD, 0x06, 0x4A, 0x11, 0x78, - 0x00, 0x29, 0xFA, 0xD1, 0xC1, 0x7A, 0x00, 0x29, 0xF7, 0xD0, 0x00, 0x21, 0xC1, 0x72, 0x01, 0x21, - 0x11, 0x70, 0x01, 0x76, 0x81, 0x72, 0xFE, 0xBD, 0x18, 0x02, 0x00, 0x20, 0x1C, 0x00, 0x00, 0x20, - 0x54, 0x04, 0x00, 0x20, 0x88, 0x03, 0x00, 0x20, 0x41, 0x01, 0x00, 0x20, 0xCC, 0x01, 0x00, 0x20, - 0xC4, 0x01, 0x00, 0x20, 0x4E, 0x06, 0x00, 0x20, 0xD6, 0x05, 0x00, 0x20, 0xC8, 0x01, 0x00, 0x20, - 0x62, 0x06, 0x00, 0x20, 0x12, 0x06, 0x00, 0x20, 0x76, 0x06, 0x00, 0x20, 0x6E, 0x01, 0x00, 0x20, - 0x70, 0x01, 0x00, 0x20, 0x3D, 0x01, 0x00, 0x20, 0x36, 0x01, 0x00, 0x20, 0xF7, 0xB5, 0x00, 0x26, - 0x5E, 0x4F, 0x01, 0x2A, 0x84, 0xB0, 0xB6, 0x46, 0xB4, 0x46, 0x35, 0x46, 0x34, 0x46, 0x3A, 0x46, - 0x04, 0xD1, 0x50, 0x7A, 0x6B, 0x46, 0x18, 0x71, 0x92, 0x7A, 0x03, 0xE0, 0x10, 0x7B, 0x6B, 0x46, - 0x18, 0x71, 0x52, 0x7B, 0x6B, 0x46, 0x5A, 0x71, 0x98, 0x71, 0xDA, 0x71, 0xD0, 0xB2, 0x53, 0x4A, - 0x03, 0x90, 0x12, 0x7C, 0x00, 0x28, 0x02, 0xD1, 0xD8, 0x79, 0x00, 0x28, 0x00, 0xD0, 0x52, 0x00, - 0xB8, 0x7B, 0x6B, 0x46, 0x18, 0x70, 0x58, 0x70, 0xFF, 0x7B, 0x9F, 0x70, 0x00, 0x20, 0xDF, 0x70, - 0x8B, 0xE0, 0x04, 0x9B, 0x9B, 0x5C, 0x01, 0x2B, 0x47, 0xD1, 0x04, 0x9B, 0x52, 0x1C, 0x9B, 0x5C, - 0x02, 0x93, 0x3A, 0xE0, 0x00, 0x2E, 0x2D, 0xD1, 0x04, 0x9B, 0x77, 0x46, 0xDB, 0x5D, 0x47, 0x00, - 0x9C, 0x46, 0x73, 0x46, 0x5B, 0x1C, 0xDB, 0xB2, 0x9E, 0x46, 0x63, 0x46, 0x9B, 0x00, 0xFF, 0x3B, - 0xFF, 0x3B, 0x02, 0x3B, 0xCB, 0x53, 0x6F, 0x46, 0x3B, 0x5D, 0x40, 0x1C, 0x5B, 0x1E, 0xDB, 0xB2, - 0x3B, 0x55, 0x01, 0xAF, 0x7F, 0x5D, 0x00, 0x2F, 0x02, 0xD1, 0x6D, 0x1C, 0xED, 0xB2, 0x01, 0xE0, - 0x7F, 0x1E, 0xFE, 0xB2, 0x00, 0x2B, 0x0D, 0xD1, 0x03, 0x9B, 0x00, 0x2B, 0x06, 0xD1, 0x6B, 0x46, - 0xDB, 0x79, 0x00, 0x2B, 0x02, 0xD1, 0xA4, 0x1C, 0xE4, 0xB2, 0x03, 0xE0, 0x64, 0x1C, 0x6D, 0x1C, - 0xE4, 0xB2, 0xED, 0xB2, 0x63, 0x46, 0x9B, 0x00, 0xFF, 0x3B, 0xFF, 0x3B, 0x47, 0x00, 0x02, 0x3B, - 0xCB, 0x53, 0x40, 0x1C, 0x76, 0x1E, 0x02, 0x9B, 0xF6, 0xB2, 0x5B, 0x1E, 0x02, 0x93, 0x43, 0xD3, - 0x23, 0x23, 0x1B, 0x01, 0x98, 0x42, 0xBD, 0xD3, 0x3E, 0xE0, 0xFF, 0x2B, 0x43, 0xD0, 0x00, 0x2E, - 0x2D, 0xD1, 0x04, 0x9B, 0x77, 0x46, 0xDB, 0x5D, 0x47, 0x00, 0x9C, 0x46, 0x73, 0x46, 0x5B, 0x1C, - 0xDB, 0xB2, 0x9E, 0x46, 0x63, 0x46, 0x9B, 0x00, 0xFF, 0x3B, 0xFF, 0x3B, 0x02, 0x3B, 0xCB, 0x53, - 0x6F, 0x46, 0x3B, 0x5D, 0x40, 0x1C, 0x5B, 0x1E, 0xDB, 0xB2, 0x3B, 0x55, 0x01, 0xAF, 0x7F, 0x5D, - 0x00, 0x2F, 0x02, 0xD1, 0x6D, 0x1C, 0xED, 0xB2, 0x01, 0xE0, 0x7F, 0x1E, 0xFE, 0xB2, 0x00, 0x2B, - 0x0D, 0xD1, 0x03, 0x9B, 0x00, 0x2B, 0x06, 0xD1, 0x6B, 0x46, 0xDB, 0x79, 0x00, 0x2B, 0x02, 0xD1, - 0xA4, 0x1C, 0xE4, 0xB2, 0x03, 0xE0, 0x64, 0x1C, 0x6D, 0x1C, 0xE4, 0xB2, 0xED, 0xB2, 0x04, 0x9B, - 0x47, 0x00, 0x9B, 0x5C, 0x40, 0x1C, 0x63, 0x44, 0x1B, 0x06, 0x9B, 0x0D, 0xFF, 0x3B, 0xFF, 0x3B, - 0x02, 0x3B, 0x76, 0x1E, 0xCB, 0x53, 0xF6, 0xB2, 0x52, 0x1C, 0x05, 0x4B, 0x9A, 0x42, 0x02, 0xD2, - 0x98, 0x42, 0x00, 0xD2, 0x6D, 0xE7, 0x07, 0xB0, 0xF0, 0xBD, 0x00, 0x00, 0x24, 0x01, 0x00, 0x20, - 0x31, 0x02, 0x00, 0x00, 0x10, 0xB5, 0x08, 0x48, 0xFF, 0x21, 0x80, 0x7E, 0xF0, 0x31, 0x48, 0x43, - 0x3C, 0x21, 0xFE, 0xF7, 0xDB, 0xF8, 0x81, 0xB2, 0x00, 0x20, 0x01, 0xE0, 0x40, 0x1C, 0x80, 0xB2, - 0x88, 0x42, 0xFB, 0xD3, 0x10, 0xBD, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x20, 0x10, 0xB5, 0x07, 0x48, - 0x28, 0x21, 0x80, 0x7E, 0x48, 0x43, 0x3C, 0x21, 0xFE, 0xF7, 0xC8, 0xF8, 0xC1, 0xB2, 0x00, 0x20, - 0x01, 0xE0, 0x40, 0x1C, 0xC0, 0xB2, 0x88, 0x42, 0xFB, 0xD3, 0x10, 0xBD, 0x1C, 0x00, 0x00, 0x20, - 0x10, 0xB5, 0x07, 0x48, 0x07, 0x49, 0x80, 0x7E, 0x48, 0x43, 0x3C, 0x21, 0xFE, 0xF7, 0xB6, 0xF8, - 0x81, 0xB2, 0x00, 0x20, 0x01, 0xE0, 0x40, 0x1C, 0x80, 0xB2, 0x88, 0x42, 0xFB, 0xD3, 0x10, 0xBD, - 0x1C, 0x00, 0x00, 0x20, 0x1E, 0x14, 0x00, 0x00, 0x10, 0xB5, 0x07, 0x48, 0x0E, 0x21, 0x80, 0x7E, - 0x48, 0x43, 0x3C, 0x21, 0xFE, 0xF7, 0xA2, 0xF8, 0xC1, 0xB2, 0x00, 0x20, 0x01, 0xE0, 0x40, 0x1C, - 0xC0, 0xB2, 0x88, 0x42, 0xFB, 0xD3, 0x10, 0xBD, 0x1C, 0x00, 0x00, 0x20, 0x10, 0xB5, 0x04, 0x46, - 0x01, 0xE0, 0xFF, 0xF7, 0xD5, 0xFF, 0x20, 0x46, 0x64, 0x1E, 0xE4, 0xB2, 0x00, 0x28, 0xF8, 0xD1, - 0x10, 0xBD, 0x00, 0x00, 0x02, 0x22, 0x04, 0x49, 0x00, 0x28, 0x08, 0x68, 0x01, 0xD0, 0x10, 0x43, - 0x00, 0xE0, 0x90, 0x43, 0x08, 0x60, 0x70, 0x47, 0x00, 0xC0, 0x00, 0x50, 0x02, 0x48, 0x01, 0x68, - 0x49, 0x08, 0x49, 0x00, 0x01, 0x60, 0x70, 0x47, 0x00, 0xC0, 0x00, 0x50, 0x05, 0x49, 0x48, 0x68, - 0x04, 0x22, 0x10, 0x43, 0x48, 0x60, 0x04, 0x49, 0x08, 0x68, 0x01, 0x22, 0x10, 0x43, 0x08, 0x60, - 0x70, 0x47, 0x00, 0x00, 0x00, 0x02, 0x00, 0x50, 0x00, 0xC0, 0x00, 0x50, 0x11, 0x49, 0xCA, 0x68, - 0x12, 0x09, 0x12, 0x01, 0x92, 0x1C, 0xCA, 0x60, 0xCA, 0x68, 0x10, 0x23, 0x9A, 0x43, 0xCA, 0x60, - 0xCA, 0x68, 0x20, 0x23, 0x1A, 0x43, 0xCA, 0x60, 0x48, 0x60, 0x08, 0x69, 0x01, 0x22, 0x10, 0x43, - 0x08, 0x61, 0xBF, 0xF3, 0x60, 0x8F, 0x08, 0x69, 0xC0, 0x07, 0xFC, 0xD1, 0x08, 0x68, 0x40, 0x06, - 0x05, 0xD5, 0x08, 0x68, 0x40, 0x22, 0x10, 0x43, 0x08, 0x60, 0x03, 0x48, 0x70, 0x47, 0x00, 0x20, - 0x70, 0x47, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x50, 0x81, 0x88, 0xFF, 0xFF, 0x10, 0xB5, 0x13, 0x4A, - 0xD3, 0x68, 0x1B, 0x09, 0x1B, 0x01, 0xD3, 0x60, 0xD3, 0x68, 0x10, 0x24, 0xA3, 0x43, 0xD3, 0x60, - 0xD3, 0x68, 0x20, 0x24, 0xA3, 0x43, 0xD3, 0x60, 0x50, 0x60, 0x00, 0x20, 0x90, 0x60, 0x10, 0x69, - 0x01, 0x23, 0x18, 0x43, 0x10, 0x61, 0xBF, 0xF3, 0x60, 0x8F, 0x10, 0x69, 0xC0, 0x07, 0xFC, 0xD1, - 0x10, 0x68, 0x40, 0x06, 0x05, 0xD5, 0x10, 0x68, 0x40, 0x21, 0x08, 0x43, 0x10, 0x60, 0x04, 0x48, - 0x10, 0xBD, 0x90, 0x68, 0x08, 0x60, 0x00, 0x20, 0x10, 0xBD, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x50, - 0x81, 0x88, 0xFF, 0xFF, 0x10, 0xB5, 0x12, 0x4A, 0xD3, 0x68, 0x1B, 0x09, 0x1B, 0x01, 0x5B, 0x1C, - 0xD3, 0x60, 0xD3, 0x68, 0x10, 0x24, 0xA3, 0x43, 0xD3, 0x60, 0xD3, 0x68, 0x20, 0x24, 0x23, 0x43, - 0xD3, 0x60, 0x50, 0x60, 0x91, 0x60, 0x10, 0x69, 0x01, 0x21, 0x08, 0x43, 0x10, 0x61, 0xBF, 0xF3, - 0x60, 0x8F, 0x10, 0x69, 0xC0, 0x07, 0xFC, 0xD1, 0x10, 0x68, 0x40, 0x06, 0x05, 0xD5, 0x10, 0x68, - 0x40, 0x21, 0x08, 0x43, 0x10, 0x60, 0x03, 0x48, 0x10, 0xBD, 0x00, 0x20, 0x10, 0xBD, 0x00, 0x00, - 0x00, 0xC0, 0x00, 0x50, 0x81, 0x88, 0xFF, 0xFF, 0x10, 0xB5, 0x03, 0x46, 0x00, 0x29, 0x01, 0xDB, - 0x10, 0x29, 0x01, 0xDD, 0x05, 0x48, 0x10, 0xBD, 0x98, 0x01, 0x05, 0x4C, 0x02, 0x19, 0x90, 0x68, - 0x01, 0x24, 0x8C, 0x40, 0xA0, 0x43, 0x90, 0x60, 0x00, 0x20, 0xF4, 0xE7, 0x01, 0x89, 0xFF, 0xFF, - 0x00, 0x40, 0x00, 0x50, 0x70, 0xB5, 0x04, 0x46, 0x0D, 0x46, 0x0E, 0x48, 0xA1, 0x01, 0x46, 0x18, - 0x01, 0x22, 0xAA, 0x40, 0x28, 0x46, 0x10, 0x30, 0x01, 0x21, 0x81, 0x40, 0x0A, 0x43, 0x30, 0x68, - 0x90, 0x43, 0x30, 0x60, 0x00, 0x2C, 0x01, 0xD0, 0x01, 0x2C, 0x02, 0xD1, 0x04, 0x20, 0x04, 0xF0, - 0x61, 0xFD, 0x02, 0x2C, 0x01, 0xD0, 0x03, 0x2C, 0x02, 0xD1, 0x05, 0x20, 0x04, 0xF0, 0x5A, 0xFD, - 0x00, 0x20, 0x70, 0xBD, 0x1C, 0x40, 0x00, 0x50, 0xFF, 0xB5, 0x81, 0xB0, 0x04, 0x46, 0x0D, 0x46, - 0x16, 0x46, 0x02, 0x2E, 0x05, 0xD1, 0x04, 0x98, 0x01, 0x28, 0x02, 0xD1, 0x2F, 0x48, 0x05, 0xB0, - 0xF0, 0xBD, 0x01, 0x2C, 0x05, 0xD1, 0x0E, 0x2D, 0x01, 0xD0, 0x0F, 0x2D, 0x01, 0xD1, 0x2B, 0x48, - 0xF5, 0xE7, 0x2B, 0x48, 0xA1, 0x01, 0x47, 0x18, 0x00, 0x2E, 0x07, 0xD1, 0x39, 0x68, 0x28, 0x46, - 0x10, 0x30, 0x01, 0x22, 0x82, 0x40, 0x11, 0x43, 0x39, 0x60, 0x16, 0xE0, 0x01, 0x2E, 0x05, 0xD1, - 0x39, 0x68, 0x01, 0x20, 0xA8, 0x40, 0x01, 0x43, 0x39, 0x60, 0x0E, 0xE0, 0x02, 0x2E, 0x0A, 0xD1, - 0x38, 0x68, 0x01, 0x21, 0xA9, 0x40, 0x08, 0x43, 0x29, 0x46, 0x10, 0x31, 0x01, 0x22, 0x8A, 0x40, - 0x10, 0x43, 0x38, 0x60, 0x01, 0xE0, 0x19, 0x48, 0xD1, 0xE7, 0x19, 0x48, 0x00, 0x1F, 0xA1, 0x01, - 0x47, 0x18, 0x04, 0x98, 0x00, 0x28, 0x05, 0xD1, 0x39, 0x68, 0x01, 0x20, 0xA8, 0x40, 0x81, 0x43, - 0x39, 0x60, 0x0A, 0xE0, 0x04, 0x98, 0x01, 0x28, 0x05, 0xD1, 0x38, 0x68, 0x01, 0x21, 0xA9, 0x40, - 0x08, 0x43, 0x38, 0x60, 0x01, 0xE0, 0x0D, 0x48, 0xB9, 0xE7, 0x00, 0x2C, 0x01, 0xD0, 0x01, 0x2C, - 0x06, 0xD1, 0x02, 0x21, 0x04, 0x20, 0x04, 0xF0, 0x47, 0xFD, 0x04, 0x20, 0x04, 0xF0, 0x18, 0xFD, - 0x02, 0x2C, 0x01, 0xD0, 0x03, 0x2C, 0x06, 0xD1, 0x02, 0x21, 0x05, 0x20, 0x04, 0xF0, 0x3C, 0xFD, - 0x05, 0x20, 0x04, 0xF0, 0x0D, 0xFD, 0x00, 0x20, 0xA1, 0xE7, 0x00, 0x00, 0x01, 0x89, 0xFF, 0xFF, - 0x1C, 0x40, 0x00, 0x50, 0x10, 0xB5, 0x03, 0x46, 0x00, 0x29, 0x01, 0xDB, 0x10, 0x29, 0x01, 0xDD, - 0x04, 0x48, 0x10, 0xBD, 0x04, 0x48, 0x9C, 0x01, 0x02, 0x19, 0x10, 0x68, 0xC8, 0x40, 0xC0, 0x07, - 0xC0, 0x0F, 0xF6, 0xE7, 0x01, 0x89, 0xFF, 0xFF, 0x10, 0x40, 0x00, 0x50, 0x10, 0xB5, 0x01, 0x46, - 0x0B, 0x46, 0x07, 0xF0, 0xD5, 0xFF, 0x18, 0x0D, 0x15, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x82, - 0x92, 0xA2, 0xB3, 0xC3, 0xD3, 0xE3, 0xF7, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xF0, 0xEF, 0xEE, 0xED, - 0x00, 0x20, 0x05, 0x23, 0x1B, 0x07, 0x18, 0x63, 0x58, 0x63, 0x98, 0x63, 0xD8, 0x63, 0x66, 0xE1, - 0x05, 0x20, 0x00, 0x07, 0x00, 0x6B, 0x03, 0x23, 0x9B, 0x02, 0x18, 0x43, 0x05, 0x23, 0x1B, 0x07, - 0x18, 0x63, 0xB0, 0x48, 0x00, 0x69, 0x01, 0x23, 0xDB, 0x02, 0x98, 0x43, 0xAD, 0x4B, 0x18, 0x61, - 0x55, 0xE1, 0x00, 0xBF, 0x00, 0xBF, 0x00, 0xBF, 0x00, 0xBF, 0x00, 0xBF, 0x02, 0x29, 0x03, 0xDB, - 0x04, 0x29, 0x01, 0xDC, 0x00, 0x22, 0x00, 0xE0, 0x04, 0x22, 0x02, 0x29, 0x01, 0xD0, 0x05, 0x29, - 0x17, 0xD1, 0x05, 0x20, 0x00, 0x07, 0x44, 0x6B, 0x0F, 0x23, 0x93, 0x40, 0x1C, 0x43, 0x44, 0x63, - 0x02, 0x29, 0x06, 0xD1, 0x9F, 0x48, 0x00, 0x69, 0x8B, 0x02, 0x98, 0x43, 0x9D, 0x4B, 0x18, 0x61, - 0x3A, 0xE0, 0x9C, 0x48, 0x00, 0x69, 0x07, 0x23, 0xDB, 0x03, 0x98, 0x43, 0x99, 0x4B, 0x18, 0x61, - 0x32, 0xE0, 0x03, 0x29, 0x01, 0xD0, 0x06, 0x29, 0x10, 0xD1, 0x05, 0x20, 0x00, 0x07, 0x44, 0x6B, - 0x03, 0x23, 0x93, 0x40, 0x1C, 0x43, 0x44, 0x63, 0x06, 0x29, 0x25, 0xD1, 0x91, 0x48, 0x00, 0x69, - 0x01, 0x23, 0xDB, 0x03, 0x98, 0x43, 0x8F, 0x4B, 0x18, 0x61, 0x1D, 0xE0, 0x04, 0x29, 0x01, 0xD0, - 0x07, 0x29, 0x19, 0xD1, 0x05, 0x20, 0x00, 0x07, 0x44, 0x6B, 0x90, 0x1C, 0x03, 0x23, 0x83, 0x40, - 0x1C, 0x43, 0x05, 0x20, 0x00, 0x07, 0x44, 0x63, 0x04, 0x29, 0x06, 0xD1, 0x85, 0x48, 0x00, 0x69, - 0x4B, 0x02, 0x98, 0x43, 0x83, 0x4B, 0x18, 0x61, 0x06, 0xE0, 0x82, 0x48, 0x00, 0x69, 0x03, 0x23, - 0x1B, 0x04, 0x98, 0x43, 0x7F, 0x4B, 0x18, 0x61, 0xF9, 0xE0, 0x05, 0x20, 0x00, 0x07, 0x80, 0x6B, - 0x0F, 0x23, 0x18, 0x43, 0x05, 0x23, 0x1B, 0x07, 0x98, 0x63, 0x7A, 0x48, 0x00, 0x69, 0xFF, 0x23, - 0xE1, 0x33, 0x98, 0x43, 0x77, 0x4B, 0x18, 0x61, 0xE9, 0xE0, 0x05, 0x20, 0x00, 0x07, 0x40, 0x6B, - 0x01, 0x23, 0x9B, 0x02, 0x18, 0x43, 0x05, 0x23, 0x1B, 0x07, 0x58, 0x63, 0x71, 0x48, 0x00, 0x69, - 0x01, 0x23, 0x18, 0x43, 0x6F, 0x4B, 0x18, 0x61, 0xD9, 0xE0, 0x05, 0x20, 0x00, 0x07, 0x80, 0x6B, - 0x0F, 0x23, 0x1B, 0x02, 0x18, 0x43, 0x05, 0x23, 0x1B, 0x07, 0x98, 0x63, 0x69, 0x48, 0x00, 0x69, - 0x0F, 0x23, 0x1B, 0x04, 0x98, 0x43, 0x67, 0x4B, 0x18, 0x61, 0xC8, 0xE0, 0x05, 0x20, 0x00, 0x07, - 0x40, 0x6B, 0x01, 0x23, 0x5B, 0x02, 0x18, 0x43, 0x05, 0x23, 0x1B, 0x07, 0x58, 0x63, 0x61, 0x48, - 0x00, 0x69, 0x02, 0x23, 0x18, 0x43, 0x5F, 0x4B, 0x18, 0x61, 0xB8, 0xE0, 0x05, 0x20, 0x00, 0x07, - 0x40, 0x6B, 0x10, 0x23, 0x18, 0x43, 0x05, 0x23, 0x1B, 0x07, 0x58, 0x63, 0x59, 0x48, 0x00, 0x69, - 0x01, 0x23, 0xDB, 0x03, 0x18, 0x43, 0x57, 0x4B, 0x18, 0x61, 0xA8, 0xE0, 0x05, 0x20, 0x00, 0x07, - 0x40, 0x6B, 0x01, 0x23, 0x9B, 0x03, 0x18, 0x43, 0x05, 0x23, 0x1B, 0x07, 0x58, 0x63, 0x51, 0x48, - 0x00, 0x69, 0x08, 0x23, 0x98, 0x43, 0x4F, 0x4B, 0x18, 0x61, 0x98, 0xE0, 0x05, 0x20, 0x00, 0x07, - 0x40, 0x6B, 0x01, 0x23, 0xDB, 0x03, 0x18, 0x43, 0x05, 0x23, 0x1B, 0x07, 0x58, 0x63, 0x8E, 0xE0, - 0x8B, 0xE0, 0x53, 0xE0, 0x51, 0xE0, 0x30, 0xE0, 0x2E, 0xE0, 0x50, 0xE0, 0x2E, 0xE0, 0x1B, 0xE0, - 0x0A, 0xE0, 0xFF, 0xE7, 0x05, 0x20, 0x00, 0x07, 0x40, 0x6B, 0xFF, 0x23, 0x01, 0x33, 0x18, 0x43, - 0x05, 0x23, 0x1B, 0x07, 0x58, 0x63, 0x7A, 0xE0, 0x05, 0x20, 0x00, 0x07, 0x40, 0x6B, 0x01, 0x23, - 0x5B, 0x02, 0x18, 0x43, 0x05, 0x23, 0x1B, 0x07, 0x58, 0x63, 0x3A, 0x48, 0x00, 0x69, 0x02, 0x23, - 0x98, 0x43, 0x38, 0x4B, 0x18, 0x61, 0x6A, 0xE0, 0x05, 0x20, 0x00, 0x07, 0x40, 0x6B, 0x01, 0x23, - 0x9B, 0x02, 0x18, 0x43, 0x05, 0x23, 0x1B, 0x07, 0x58, 0x63, 0x32, 0x48, 0x00, 0x69, 0x40, 0x08, - 0x40, 0x00, 0x30, 0x4B, 0x18, 0x61, 0x5A, 0xE0, 0x00, 0xBF, 0x00, 0xBF, 0x12, 0x29, 0x09, 0xD1, - 0x05, 0x20, 0x00, 0x07, 0x00, 0x6B, 0x03, 0x23, 0x1B, 0x03, 0x18, 0x43, 0x05, 0x23, 0x1B, 0x07, - 0x18, 0x63, 0x0A, 0xE0, 0x05, 0x20, 0x00, 0x07, 0x04, 0x6B, 0x0B, 0x46, 0x08, 0x3B, 0x01, 0x20, - 0x98, 0x40, 0x04, 0x43, 0x05, 0x20, 0x00, 0x07, 0x04, 0x63, 0x22, 0x48, 0x00, 0x69, 0x01, 0x23, - 0xDB, 0x02, 0x98, 0x43, 0x1F, 0x4B, 0x18, 0x61, 0x39, 0xE0, 0x00, 0xBF, 0x00, 0xBF, 0x13, 0x29, - 0x16, 0xD1, 0x05, 0x20, 0x00, 0x07, 0x00, 0x6B, 0x03, 0x23, 0x9B, 0x03, 0x18, 0x43, 0x05, 0x23, - 0x1B, 0x07, 0x18, 0x63, 0x17, 0x48, 0x00, 0x69, 0x01, 0x23, 0x5B, 0x02, 0x98, 0x43, 0x15, 0x4B, - 0x18, 0x61, 0x18, 0x46, 0x00, 0x69, 0x5B, 0x01, 0x98, 0x43, 0x12, 0x4B, 0x18, 0x61, 0x1B, 0xE0, - 0x05, 0x20, 0x00, 0x07, 0x04, 0x6B, 0x0B, 0x46, 0x08, 0x3B, 0x01, 0x20, 0x98, 0x40, 0x04, 0x43, - 0x05, 0x20, 0x00, 0x07, 0x04, 0x63, 0x16, 0x29, 0x07, 0xD1, 0x0A, 0x48, 0x00, 0x69, 0x01, 0x23, - 0xDB, 0x02, 0x98, 0x43, 0x07, 0x4B, 0x18, 0x61, 0x06, 0xE0, 0x06, 0x48, 0x00, 0x69, 0x01, 0x23, - 0x5B, 0x02, 0x98, 0x43, 0x03, 0x4B, 0x18, 0x61, 0x01, 0xE0, 0x03, 0x48, 0x10, 0xBD, 0x00, 0xBF, - 0x00, 0x20, 0xFB, 0xE7, 0x40, 0x00, 0x00, 0x50, 0x01, 0x89, 0xFF, 0xFF, 0x70, 0xB5, 0x03, 0x46, - 0x00, 0x29, 0x01, 0xDB, 0x10, 0x29, 0x01, 0xDD, 0x17, 0x48, 0x70, 0xBD, 0x98, 0x01, 0x17, 0x4D, - 0x44, 0x19, 0x00, 0x2A, 0x03, 0xD0, 0x01, 0x2A, 0x01, 0xD0, 0x02, 0x2A, 0x17, 0xD1, 0x25, 0x68, - 0x4E, 0x00, 0x03, 0x20, 0xB0, 0x40, 0x85, 0x43, 0x25, 0x60, 0x01, 0x2A, 0x06, 0xD1, 0x25, 0x68, - 0x4E, 0x00, 0x01, 0x20, 0xB0, 0x40, 0x05, 0x43, 0x25, 0x60, 0x13, 0xE0, 0x02, 0x2A, 0x11, 0xD1, - 0x20, 0x68, 0x4E, 0x00, 0x02, 0x25, 0xB5, 0x40, 0x28, 0x43, 0x20, 0x60, 0x0A, 0xE0, 0x03, 0x2A, - 0x06, 0xD1, 0x20, 0x68, 0x4E, 0x00, 0x03, 0x25, 0xB5, 0x40, 0x28, 0x43, 0x20, 0x60, 0x01, 0xE0, - 0x01, 0x48, 0xD2, 0xE7, 0x00, 0x20, 0xD0, 0xE7, 0x01, 0x89, 0xFF, 0xFF, 0x00, 0x40, 0x00, 0x50, - 0x10, 0xB5, 0x03, 0x46, 0x00, 0x29, 0x01, 0xDB, 0x10, 0x29, 0x01, 0xDD, 0x05, 0x48, 0x10, 0xBD, - 0x98, 0x01, 0x05, 0x4C, 0x02, 0x19, 0x90, 0x68, 0x01, 0x24, 0x8C, 0x40, 0x20, 0x43, 0x90, 0x60, - 0x00, 0x20, 0xF4, 0xE7, 0x01, 0x89, 0xFF, 0xFF, 0x00, 0x40, 0x00, 0x50, 0x02, 0x4A, 0x10, 0x60, - 0x12, 0x1D, 0x11, 0x60, 0x70, 0x47, 0x00, 0x00, 0x04, 0x01, 0x00, 0x20, 0x0A, 0x48, 0x01, 0x68, - 0x40, 0x22, 0x91, 0x43, 0x01, 0x60, 0x05, 0x20, 0x00, 0x07, 0xC2, 0x68, 0x01, 0x21, 0x49, 0x02, - 0x0A, 0x43, 0xC2, 0x60, 0xC2, 0x68, 0x8A, 0x43, 0xC2, 0x60, 0x04, 0x4A, 0x90, 0x68, 0x88, 0x43, - 0x90, 0x60, 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x00, 0x00, 0x12, 0x40, 0x00, 0x02, 0x00, 0x50, - 0x09, 0x4A, 0x00, 0x28, 0x07, 0xD0, 0x01, 0x28, 0x07, 0xD0, 0x02, 0x28, 0x07, 0xD0, 0x03, 0x28, - 0x08, 0xD1, 0xD1, 0x60, 0x04, 0xE0, 0x11, 0x60, 0x02, 0xE0, 0x51, 0x60, 0x00, 0xE0, 0x91, 0x60, - 0x00, 0x20, 0x70, 0x47, 0x01, 0x48, 0x70, 0x47, 0x28, 0x1A, 0x00, 0x20, 0x01, 0x8B, 0xFF, 0xFF, - 0x81, 0x00, 0x10, 0xB5, 0x10, 0x48, 0x0A, 0x22, 0x00, 0x68, 0x50, 0x43, 0xFD, 0xF7, 0x16, 0xFD, - 0x40, 0x1D, 0x0A, 0x21, 0xFD, 0xF7, 0x12, 0xFD, 0x0C, 0x49, 0x40, 0x1E, 0x8B, 0x68, 0x01, 0x22, - 0x52, 0x02, 0x13, 0x43, 0x8B, 0x60, 0x05, 0x21, 0x09, 0x07, 0xCB, 0x68, 0x13, 0x43, 0xCB, 0x60, - 0xCB, 0x68, 0x93, 0x43, 0xCB, 0x60, 0x06, 0x49, 0x0A, 0x68, 0x40, 0x23, 0x1A, 0x43, 0x0A, 0x60, - 0x08, 0x61, 0x00, 0x20, 0x10, 0xBD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x02, 0x00, 0x50, - 0x00, 0x00, 0x12, 0x40, 0x01, 0x48, 0x80, 0x68, 0xC0, 0xB2, 0x70, 0x47, 0x00, 0x00, 0x12, 0x40, - 0x10, 0xB5, 0x49, 0x06, 0xD2, 0x07, 0x1B, 0x4B, 0xFE, 0x24, 0x09, 0x0E, 0xD2, 0x0F, 0x00, 0x28, - 0x0F, 0xD0, 0x01, 0x28, 0x17, 0xD0, 0x02, 0x28, 0x1F, 0xD0, 0x03, 0x28, 0x28, 0xD1, 0x18, 0x6A, - 0xA0, 0x43, 0x08, 0x43, 0x18, 0x62, 0x18, 0x6A, 0x40, 0x08, 0x40, 0x00, 0x10, 0x43, 0x18, 0x62, - 0x1C, 0xE0, 0x58, 0x68, 0xA0, 0x43, 0x08, 0x43, 0x58, 0x60, 0x58, 0x68, 0x40, 0x08, 0x40, 0x00, - 0x10, 0x43, 0x58, 0x60, 0x12, 0xE0, 0x98, 0x69, 0xA0, 0x43, 0x08, 0x43, 0x98, 0x61, 0x98, 0x69, - 0x40, 0x08, 0x40, 0x00, 0x10, 0x43, 0x98, 0x61, 0x08, 0xE0, 0xD8, 0x69, 0xA0, 0x43, 0x08, 0x43, - 0xD8, 0x61, 0xD8, 0x69, 0x40, 0x08, 0x40, 0x00, 0x10, 0x43, 0xD8, 0x61, 0x00, 0x20, 0x10, 0xBD, - 0x01, 0x48, 0x10, 0xBD, 0x00, 0x00, 0x12, 0x40, 0x01, 0x8B, 0xFF, 0xFF, 0x01, 0x49, 0x88, 0x60, - 0x70, 0x47, 0x00, 0x00, 0x00, 0x00, 0x12, 0x40, 0x08, 0x49, 0x09, 0x68, 0x41, 0x43, 0x08, 0x4A, - 0x51, 0x61, 0x00, 0x21, 0x91, 0x61, 0x05, 0x21, 0x11, 0x61, 0x00, 0xBF, 0x04, 0x49, 0x09, 0x69, - 0x01, 0x22, 0x12, 0x04, 0x11, 0x42, 0xF9, 0xD0, 0x70, 0x47, 0x00, 0x00, 0x04, 0x00, 0x00, 0x20, - 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xB5, 0x01, 0x46, 0x0B, 0x46, 0x07, 0xF0, 0x39, 0xFD, 0x05, 0x04, - 0x09, 0x0E, 0x13, 0x18, 0x1D, 0x00, 0x0F, 0x48, 0xC0, 0x68, 0xC2, 0x07, 0xD2, 0x0F, 0x15, 0xE0, - 0x0C, 0x48, 0xC0, 0x68, 0x80, 0x07, 0xC2, 0x0F, 0x10, 0xE0, 0x0A, 0x48, 0xC0, 0x68, 0xC0, 0x06, - 0xC2, 0x0F, 0x0B, 0xE0, 0x07, 0x48, 0xC0, 0x68, 0x00, 0x07, 0xC2, 0x0F, 0x06, 0xE0, 0x05, 0x48, - 0xC0, 0x68, 0x40, 0x07, 0xC2, 0x0F, 0x01, 0xE0, 0x03, 0x48, 0x00, 0xBD, 0x00, 0xBF, 0x10, 0x46, - 0xFB, 0xE7, 0x00, 0x00, 0x00, 0x02, 0x00, 0x50, 0x03, 0x96, 0xFF, 0xFF, 0x00, 0x48, 0x70, 0x47, - 0x00, 0x1B, 0xB7, 0x00, 0x7F, 0xB5, 0x00, 0x24, 0x18, 0x48, 0x6E, 0x46, 0x2E, 0xC8, 0x2E, 0xC6, - 0x17, 0x48, 0x00, 0x6A, 0x00, 0x03, 0xC0, 0x0F, 0x01, 0x28, 0x01, 0xD1, 0x15, 0x4D, 0x00, 0xE0, - 0x15, 0x4D, 0x13, 0x48, 0x00, 0x6A, 0xC0, 0x03, 0xC0, 0x0F, 0x01, 0x28, 0x01, 0xD1, 0x00, 0x24, - 0x19, 0xE0, 0x0F, 0x4A, 0x12, 0x6A, 0x92, 0x04, 0xD2, 0x0E, 0x91, 0x1C, 0x0C, 0x4A, 0x12, 0x6A, - 0xD2, 0x05, 0xD2, 0x0D, 0x92, 0x1C, 0x6A, 0x43, 0x10, 0x46, 0xFD, 0xF7, 0x3F, 0xFC, 0x06, 0x46, - 0x07, 0x48, 0x00, 0x6A, 0x00, 0x04, 0x80, 0x0F, 0x80, 0x00, 0x6A, 0x46, 0x11, 0x58, 0x30, 0x46, - 0xFD, 0xF7, 0x34, 0xFC, 0x04, 0x46, 0x20, 0x46, 0x04, 0xB0, 0x70, 0xBD, 0xF0, 0xB9, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x50, 0x00, 0x80, 0x51, 0x01, 0x00, 0x1B, 0xB7, 0x00, 0xFE, 0xB5, 0x04, 0x46, - 0x0D, 0x46, 0x28, 0x48, 0x01, 0x90, 0x00, 0x20, 0x00, 0x90, 0x27, 0x48, 0x85, 0x42, 0x06, 0xD2, - 0x26, 0x48, 0x85, 0x42, 0x03, 0xD3, 0x03, 0x20, 0x02, 0x90, 0xAD, 0x00, 0x14, 0xE0, 0x24, 0x48, - 0x85, 0x42, 0x06, 0xD2, 0x40, 0x10, 0x85, 0x42, 0x03, 0xD3, 0x01, 0x20, 0x02, 0x90, 0x6D, 0x00, - 0x0A, 0xE0, 0x20, 0x48, 0x85, 0x42, 0x05, 0xD8, 0x40, 0x10, 0x85, 0x42, 0x02, 0xD3, 0x00, 0x20, - 0x02, 0x90, 0x01, 0xE0, 0x1C, 0x48, 0xFE, 0xBD, 0x00, 0x2C, 0x02, 0xD1, 0x15, 0x48, 0x01, 0x90, - 0x03, 0xE0, 0x01, 0x2C, 0x01, 0xD1, 0x19, 0x48, 0x01, 0x90, 0x19, 0x49, 0x28, 0x46, 0xFD, 0xF7, - 0xF5, 0xFB, 0x07, 0x46, 0x16, 0x49, 0x01, 0x98, 0xFD, 0xF7, 0xF0, 0xFB, 0x06, 0x46, 0x0C, 0xE0, - 0xF0, 0x07, 0xC0, 0x0F, 0x06, 0xD1, 0xF8, 0x07, 0xC0, 0x0F, 0x03, 0xD1, 0x02, 0x2E, 0x01, 0xD0, - 0x02, 0x2F, 0x00, 0xD1, 0x02, 0xE0, 0x76, 0x08, 0x7F, 0x08, 0xF1, 0xE7, 0x00, 0xBF, 0x02, 0x98, - 0x80, 0x03, 0xB1, 0x1E, 0x49, 0x02, 0x08, 0x43, 0xB9, 0x1E, 0x08, 0x43, 0x00, 0x90, 0x00, 0x98, - 0xD1, 0xE7, 0x00, 0x00, 0x00, 0x1B, 0xB7, 0x00, 0x40, 0x59, 0x73, 0x07, 0x40, 0x78, 0x7D, 0x01, - 0x80, 0xB2, 0xE6, 0x0E, 0x00, 0x65, 0xCD, 0x1D, 0x2E, 0xC2, 0x00, 0x00, 0x00, 0x80, 0x51, 0x01, - 0x40, 0x42, 0x0F, 0x00, 0x70, 0xB5, 0x04, 0x46, 0x00, 0x25, 0x2B, 0x48, 0x84, 0x42, 0x02, 0xD8, - 0x2A, 0x48, 0x84, 0x42, 0x01, 0xD2, 0x2A, 0x48, 0x70, 0xBD, 0x2A, 0x48, 0x00, 0x6A, 0x00, 0x03, - 0xC0, 0x0F, 0x1B, 0xD1, 0x27, 0x48, 0x00, 0x68, 0x40, 0x08, 0x40, 0x00, 0x40, 0x1C, 0x25, 0x49, - 0x08, 0x60, 0x4B, 0x20, 0x00, 0x01, 0xFF, 0xF7, 0xFF, 0xFE, 0x22, 0x48, 0xC0, 0x68, 0xC0, 0x07, - 0xC0, 0x0F, 0x01, 0xD0, 0x00, 0x25, 0x17, 0xE0, 0x1E, 0x48, 0x00, 0x6A, 0x01, 0x21, 0xC9, 0x04, - 0x88, 0x43, 0x40, 0x18, 0x1B, 0x49, 0x08, 0x62, 0x01, 0x25, 0x0D, 0xE0, 0x19, 0x48, 0x00, 0x68, - 0x04, 0x21, 0x88, 0x43, 0x00, 0x1D, 0x17, 0x49, 0x08, 0x60, 0x00, 0xBF, 0x15, 0x48, 0xC0, 0x68, - 0xC0, 0x06, 0xC0, 0x0F, 0xFA, 0xD0, 0x01, 0x25, 0x21, 0x46, 0x28, 0x46, 0xFF, 0xF7, 0x5E, 0xFF, - 0x06, 0x46, 0x30, 0x46, 0x00, 0xF0, 0x62, 0xF8, 0x0E, 0x48, 0x00, 0x6A, 0x01, 0x21, 0x89, 0x04, - 0x88, 0x43, 0x0C, 0x49, 0x08, 0x62, 0x08, 0x46, 0x00, 0x6A, 0xC9, 0x01, 0x88, 0x43, 0x09, 0x49, - 0x08, 0x62, 0x00, 0xBF, 0x07, 0x48, 0xC0, 0x68, 0x40, 0x07, 0xC0, 0x0F, 0xFA, 0xD0, 0x02, 0x20, - 0x00, 0xF0, 0x14, 0xF8, 0x00, 0x20, 0xAF, 0xE7, 0x00, 0x87, 0x93, 0x03, 0x40, 0x78, 0x7D, 0x01, - 0x06, 0x96, 0xFF, 0xFF, 0x00, 0x02, 0x00, 0x50, 0x05, 0x20, 0x00, 0x07, 0x80, 0x68, 0x02, 0x21, - 0x88, 0x43, 0x80, 0x1C, 0x05, 0x21, 0x09, 0x07, 0x88, 0x60, 0x70, 0x47, 0x10, 0xB5, 0x04, 0x46, - 0x07, 0x2C, 0x03, 0xDC, 0x03, 0x2C, 0x03, 0xDD, 0x07, 0x2C, 0x01, 0xDA, 0x0E, 0x48, 0x10, 0xBD, - 0x0E, 0x48, 0x00, 0x69, 0xC0, 0x08, 0xC0, 0x00, 0x61, 0x07, 0x49, 0x0F, 0x08, 0x43, 0x0B, 0x49, - 0x08, 0x61, 0x08, 0x46, 0xC0, 0x68, 0x00, 0x06, 0xC0, 0x0F, 0x09, 0xD0, 0x08, 0x46, 0xC0, 0x68, - 0x80, 0x21, 0x88, 0x43, 0x80, 0x30, 0x05, 0x49, 0xC8, 0x60, 0x03, 0x48, 0x00, 0x1D, 0xE6, 0xE7, - 0x06, 0xF0, 0x60, 0xFC, 0x00, 0x20, 0xE2, 0xE7, 0x03, 0x96, 0xFF, 0xFF, 0x00, 0x02, 0x00, 0x50, - 0x05, 0x49, 0x0A, 0x6A, 0x89, 0x02, 0x8A, 0x43, 0xC1, 0x04, 0x01, 0x23, 0xDB, 0x04, 0x19, 0x40, - 0x0A, 0x43, 0x01, 0x49, 0x0A, 0x62, 0x70, 0x47, 0x00, 0x02, 0x00, 0x50, 0x11, 0x49, 0x09, 0x6A, - 0x49, 0x0A, 0x49, 0x02, 0xC2, 0x05, 0xD2, 0x0D, 0x11, 0x43, 0x0E, 0x4A, 0x11, 0x62, 0x11, 0x46, - 0x0A, 0x6A, 0x1F, 0x21, 0x49, 0x02, 0x8A, 0x43, 0x41, 0x0A, 0x49, 0x02, 0x1F, 0x23, 0x5B, 0x02, - 0x19, 0x40, 0x0A, 0x43, 0x07, 0x49, 0x0A, 0x62, 0x0A, 0x6A, 0x03, 0x21, 0x89, 0x03, 0x8A, 0x43, - 0x81, 0x0B, 0x89, 0x03, 0x03, 0x23, 0x9B, 0x03, 0x19, 0x40, 0x0A, 0x43, 0x01, 0x49, 0x0A, 0x62, - 0x70, 0x47, 0x00, 0x00, 0x00, 0x02, 0x00, 0x50, 0xF0, 0xB5, 0x5E, 0x49, 0xC8, 0x7A, 0xC0, 0x09, - 0x02, 0xD0, 0x0A, 0x20, 0x10, 0x26, 0x01, 0xE0, 0x14, 0x20, 0x0E, 0x26, 0xCB, 0x7B, 0x5A, 0x4A, - 0x5A, 0x4C, 0x13, 0x70, 0xDA, 0xB2, 0x53, 0x1C, 0x96, 0x46, 0x5B, 0x08, 0x58, 0x4D, 0x23, 0x70, - 0x52, 0x08, 0x2A, 0x70, 0x22, 0x78, 0x03, 0x2A, 0x01, 0xD3, 0x82, 0x42, 0x00, 0xD9, 0x20, 0x70, - 0x2A, 0x78, 0x03, 0x2A, 0x01, 0xD3, 0x82, 0x42, 0x00, 0xD9, 0x28, 0x70, 0xC8, 0x7A, 0x00, 0x27, - 0xC0, 0x09, 0x00, 0x28, 0x20, 0x78, 0x4F, 0x4B, 0x08, 0xD0, 0x18, 0x70, 0x4E, 0x48, 0x4F, 0x4B, - 0x07, 0x70, 0x28, 0x78, 0x18, 0x70, 0x4E, 0x48, 0x07, 0x70, 0x0D, 0xE0, 0x42, 0x1C, 0x52, 0x08, - 0x1A, 0x70, 0x42, 0x08, 0x48, 0x48, 0x49, 0x4B, 0x02, 0x70, 0x28, 0x78, 0x42, 0x1C, 0x52, 0x08, - 0x1A, 0x70, 0x47, 0x4A, 0x40, 0x08, 0x10, 0x70, 0x3B, 0x46, 0x3A, 0x46, 0x45, 0x4F, 0x00, 0x20, - 0x3A, 0x70, 0x0B, 0xE0, 0x3B, 0x4A, 0x60, 0x3A, 0x12, 0x18, 0x60, 0x32, 0xD2, 0x7F, 0xFF, 0x2A, - 0x06, 0xD0, 0x3A, 0x78, 0x52, 0x1C, 0x40, 0x1C, 0x3A, 0x70, 0xC0, 0xB2, 0xB0, 0x42, 0xF1, 0xD3, - 0x1A, 0x46, 0x3D, 0x4B, 0x10, 0x20, 0x1A, 0x70, 0x10, 0x36, 0x0B, 0xE0, 0x31, 0x4A, 0x60, 0x3A, - 0x12, 0x18, 0x60, 0x32, 0xD2, 0x7F, 0xFF, 0x2A, 0x06, 0xD0, 0x1A, 0x78, 0x52, 0x1C, 0x40, 0x1C, - 0x1A, 0x70, 0xC0, 0xB2, 0xB0, 0x42, 0xF1, 0xD3, 0xC8, 0x7A, 0xC0, 0x06, 0x03, 0xD5, 0x38, 0x78, - 0x19, 0x78, 0x39, 0x70, 0x18, 0x70, 0x38, 0x78, 0x19, 0x78, 0x30, 0x4B, 0x42, 0x18, 0xD2, 0xB2, - 0x1A, 0x70, 0x28, 0x4B, 0x06, 0x46, 0x1F, 0x78, 0x2D, 0x4B, 0x7E, 0x43, 0x1E, 0x80, 0x26, 0x4B, - 0x2C, 0x4E, 0x1B, 0x78, 0x9C, 0x46, 0x43, 0x43, 0x33, 0x80, 0x0B, 0x46, 0x2A, 0x4E, 0x7B, 0x43, - 0x33, 0x80, 0x63, 0x46, 0x29, 0x4E, 0x4B, 0x43, 0x33, 0x80, 0x20, 0x4B, 0x06, 0x46, 0x1F, 0x78, - 0x27, 0x4B, 0x7E, 0x43, 0xBC, 0x46, 0x1E, 0x4F, 0x1E, 0x80, 0x3B, 0x78, 0x25, 0x4E, 0x07, 0x46, - 0x5F, 0x43, 0x37, 0x80, 0x67, 0x46, 0x0E, 0x46, 0x7E, 0x43, 0x23, 0x4F, 0x4B, 0x43, 0x3E, 0x80, - 0x22, 0x4E, 0x33, 0x80, 0x23, 0x78, 0x22, 0x4C, 0x06, 0x46, 0x5E, 0x43, 0x26, 0x80, 0x0C, 0x46, - 0x20, 0x4E, 0x5C, 0x43, 0x34, 0x80, 0x2C, 0x78, 0x1F, 0x4D, 0x60, 0x43, 0x28, 0x80, 0x1F, 0x48, - 0x61, 0x43, 0x01, 0x80, 0x10, 0x46, 0x1E, 0x49, 0x58, 0x43, 0x08, 0x80, 0x10, 0x46, 0x1D, 0x49, - 0x60, 0x43, 0x08, 0x80, 0x1C, 0x49, 0x50, 0x02, 0x08, 0x80, 0x70, 0x46, 0x1B, 0x49, 0x40, 0x02, - 0x08, 0x80, 0xF0, 0xBD, 0x14, 0x04, 0x00, 0x20, 0x35, 0x01, 0x00, 0x20, 0x2C, 0x01, 0x00, 0x20, - 0x2F, 0x01, 0x00, 0x20, 0x2D, 0x01, 0x00, 0x20, 0x2E, 0x01, 0x00, 0x20, 0x30, 0x01, 0x00, 0x20, - 0x31, 0x01, 0x00, 0x20, 0x32, 0x01, 0x00, 0x20, 0x33, 0x01, 0x00, 0x20, 0x34, 0x01, 0x00, 0x20, - 0x5C, 0x01, 0x00, 0x20, 0x1E, 0x02, 0x00, 0x20, 0x5E, 0x01, 0x00, 0x20, 0x20, 0x02, 0x00, 0x20, - 0x60, 0x01, 0x00, 0x20, 0x22, 0x02, 0x00, 0x20, 0x62, 0x01, 0x00, 0x20, 0x24, 0x02, 0x00, 0x20, - 0x64, 0x01, 0x00, 0x20, 0x66, 0x01, 0x00, 0x20, 0x68, 0x01, 0x00, 0x20, 0x6A, 0x01, 0x00, 0x20, - 0x6C, 0x01, 0x00, 0x20, 0x26, 0x02, 0x00, 0x20, 0x6E, 0x01, 0x00, 0x20, 0x70, 0x01, 0x00, 0x20, - 0x10, 0xB5, 0x04, 0x46, 0x01, 0x20, 0x00, 0x05, 0x84, 0x42, 0x13, 0xD1, 0x00, 0xBF, 0x14, 0x48, - 0x80, 0x69, 0xC0, 0x00, 0xC0, 0x0F, 0xFA, 0xD0, 0x12, 0x48, 0x80, 0x68, 0x01, 0x21, 0x49, 0x04, - 0x88, 0x43, 0x10, 0x49, 0x88, 0x60, 0x00, 0x20, 0x0F, 0x49, 0x08, 0x60, 0x0D, 0x20, 0x03, 0xF0, - 0x9B, 0xFF, 0x13, 0xE0, 0x00, 0xBF, 0x0D, 0x48, 0x80, 0x69, 0xC0, 0x00, 0xC0, 0x0F, 0xFA, 0xD0, - 0x08, 0x48, 0x80, 0x68, 0x01, 0x21, 0x09, 0x04, 0x88, 0x43, 0x06, 0x49, 0x88, 0x60, 0x00, 0x20, - 0x05, 0x49, 0x09, 0x1F, 0x08, 0x60, 0x0C, 0x20, 0x03, 0xF0, 0x86, 0xFF, 0x10, 0xBD, 0x00, 0x00, - 0x00, 0x00, 0x15, 0x40, 0x00, 0x02, 0x00, 0x50, 0x20, 0x01, 0x00, 0x20, 0x00, 0x00, 0x05, 0x40, - 0xF8, 0xB5, 0x04, 0x46, 0x0D, 0x46, 0x00, 0x2C, 0x05, 0xD0, 0x01, 0x20, 0x00, 0x05, 0x84, 0x42, - 0x01, 0xD0, 0x83, 0x48, 0xF8, 0xBD, 0xA8, 0x79, 0x00, 0x28, 0x0E, 0xD0, 0xA8, 0x79, 0x03, 0x28, - 0x0B, 0xD0, 0xA8, 0x79, 0x01, 0x28, 0x08, 0xD0, 0xA8, 0x79, 0x05, 0x28, 0x05, 0xD0, 0xA8, 0x79, - 0x07, 0x28, 0x02, 0xD0, 0x7A, 0x48, 0x40, 0x1C, 0xEC, 0xE7, 0x28, 0x79, 0x00, 0x28, 0x0B, 0xD0, - 0x28, 0x79, 0x01, 0x28, 0x08, 0xD0, 0x28, 0x79, 0x02, 0x28, 0x05, 0xD0, 0x28, 0x79, 0x03, 0x28, - 0x02, 0xD0, 0x73, 0x48, 0x80, 0x1C, 0xDD, 0xE7, 0x68, 0x79, 0x00, 0x28, 0x08, 0xD0, 0x68, 0x79, - 0x01, 0x28, 0x05, 0xD0, 0x68, 0x79, 0x01, 0x28, 0x02, 0xD0, 0x6D, 0x48, 0xC0, 0x1C, 0xD1, 0xE7, - 0xE8, 0x79, 0x00, 0x28, 0x14, 0xD0, 0xE8, 0x79, 0x01, 0x28, 0x11, 0xD0, 0xE8, 0x79, 0x02, 0x28, - 0x0E, 0xD0, 0xE8, 0x79, 0x03, 0x28, 0x0B, 0xD0, 0xE8, 0x79, 0x04, 0x28, 0x08, 0xD0, 0xE8, 0x79, - 0x05, 0x28, 0x05, 0xD0, 0xE8, 0x79, 0x06, 0x28, 0x02, 0xD0, 0x61, 0x48, 0x00, 0x1D, 0xB9, 0xE7, - 0x00, 0x2C, 0x19, 0xD1, 0x5F, 0x48, 0x80, 0x68, 0x01, 0x21, 0x09, 0x04, 0x88, 0x43, 0x40, 0x18, - 0x5C, 0x49, 0x88, 0x60, 0x05, 0x20, 0x00, 0x07, 0xC0, 0x68, 0xC9, 0x01, 0x88, 0x43, 0x40, 0x18, - 0x05, 0x21, 0x09, 0x07, 0xC8, 0x60, 0x08, 0x46, 0xC0, 0x68, 0x01, 0x21, 0x09, 0x04, 0x88, 0x43, - 0x05, 0x21, 0x09, 0x07, 0xC8, 0x60, 0x1A, 0xE0, 0x01, 0x20, 0x00, 0x05, 0x84, 0x42, 0x16, 0xD1, - 0x50, 0x48, 0x80, 0x68, 0xE1, 0x10, 0x88, 0x43, 0x40, 0x18, 0x4E, 0x49, 0x88, 0x60, 0x05, 0x20, - 0x00, 0x07, 0xC0, 0x68, 0x09, 0x02, 0x88, 0x43, 0x40, 0x18, 0x05, 0x21, 0x09, 0x07, 0xC8, 0x60, - 0x08, 0x46, 0xC0, 0x68, 0xE1, 0x10, 0x88, 0x43, 0x05, 0x21, 0x09, 0x07, 0xC8, 0x60, 0x46, 0x48, - 0x26, 0x18, 0xB0, 0x68, 0x04, 0x21, 0x88, 0x43, 0x00, 0x1D, 0xB0, 0x60, 0xB0, 0x68, 0x02, 0x21, - 0x88, 0x43, 0x80, 0x1C, 0xB0, 0x60, 0xB1, 0x68, 0xF0, 0x20, 0x81, 0x43, 0xE8, 0x79, 0x00, 0x01, - 0xF0, 0x22, 0x10, 0x40, 0x01, 0x43, 0xB1, 0x60, 0xF0, 0x68, 0x20, 0x21, 0x88, 0x43, 0xA9, 0x79, - 0x04, 0x22, 0x11, 0x40, 0x89, 0x08, 0x49, 0x01, 0x20, 0x22, 0x11, 0x40, 0x08, 0x43, 0xF0, 0x60, - 0xF0, 0x68, 0x10, 0x21, 0x88, 0x43, 0xA9, 0x79, 0x02, 0x22, 0x11, 0x40, 0x49, 0x08, 0x09, 0x01, - 0x10, 0x22, 0x11, 0x40, 0x08, 0x43, 0xF0, 0x60, 0xF0, 0x68, 0x08, 0x21, 0x88, 0x43, 0xA9, 0x79, - 0xC9, 0x00, 0x08, 0x22, 0x11, 0x40, 0x08, 0x43, 0xF0, 0x60, 0xF0, 0x68, 0x80, 0x08, 0x80, 0x00, - 0x29, 0x79, 0x89, 0x07, 0x89, 0x0F, 0x08, 0x43, 0xF0, 0x60, 0xF1, 0x68, 0x04, 0x20, 0x81, 0x43, - 0x68, 0x79, 0x80, 0x00, 0x04, 0x22, 0x10, 0x40, 0x01, 0x43, 0xF1, 0x60, 0x30, 0x6A, 0xC0, 0x09, - 0xC0, 0x01, 0x29, 0x7A, 0x49, 0x06, 0x49, 0x0E, 0x08, 0x43, 0x30, 0x62, 0x1D, 0x48, 0xC0, 0x68, - 0xC0, 0x07, 0xC0, 0x0F, 0x07, 0xD0, 0x1B, 0x48, 0x40, 0x69, 0x03, 0x21, 0x09, 0x06, 0x88, 0x43, - 0x18, 0x49, 0x48, 0x61, 0x22, 0xE0, 0x17, 0x48, 0xC0, 0x68, 0x40, 0x07, 0xC0, 0x0F, 0x0A, 0xD0, - 0x14, 0x48, 0x40, 0x69, 0x03, 0x21, 0x09, 0x06, 0x88, 0x43, 0x01, 0x21, 0x09, 0x06, 0x40, 0x18, - 0x10, 0x49, 0x48, 0x61, 0x12, 0xE0, 0x0F, 0x48, 0xC0, 0x68, 0xC0, 0x06, 0xC0, 0x0F, 0x0A, 0xD0, - 0x0C, 0x48, 0x40, 0x69, 0x03, 0x21, 0x09, 0x06, 0x88, 0x43, 0x01, 0x21, 0x09, 0x06, 0x40, 0x18, - 0x08, 0x49, 0x48, 0x61, 0x02, 0xE0, 0x06, 0x48, 0x80, 0x1D, 0x03, 0xE7, 0x01, 0xF0, 0xBC, 0xFA, - 0x07, 0x46, 0x32, 0x46, 0x24, 0x32, 0x29, 0x68, 0xFD, 0xF7, 0x90, 0xFC, 0x00, 0x20, 0xF9, 0xE6, - 0x02, 0x98, 0xFF, 0xFF, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x05, 0x40, 0x1C, 0x49, 0x89, 0x68, - 0xC9, 0x09, 0xC9, 0x01, 0x1A, 0x4A, 0x91, 0x60, 0x11, 0x46, 0x09, 0x68, 0x01, 0x22, 0xD2, 0x03, - 0x91, 0x43, 0x17, 0x4A, 0x11, 0x60, 0x17, 0x49, 0x09, 0x6D, 0x17, 0x4A, 0x89, 0x1A, 0x14, 0x4A, - 0x91, 0x61, 0x00, 0x20, 0x17, 0xE0, 0x01, 0x21, 0x02, 0x01, 0x11, 0x4B, 0xD2, 0x18, 0xD1, 0x62, - 0x81, 0x00, 0x12, 0x4A, 0x51, 0x58, 0x89, 0x05, 0x89, 0x0D, 0x02, 0x01, 0xD2, 0x18, 0x91, 0x62, - 0x0C, 0x21, 0x41, 0x43, 0x0E, 0x4A, 0x89, 0x18, 0x89, 0x68, 0x0B, 0x4A, 0x89, 0x1A, 0x02, 0x01, - 0xD2, 0x18, 0x11, 0x62, 0x40, 0x1C, 0x0C, 0x21, 0x41, 0x43, 0x09, 0x4A, 0x89, 0x18, 0x49, 0x68, - 0x00, 0x29, 0xE0, 0xD1, 0x07, 0x4A, 0x11, 0x70, 0x07, 0x4A, 0x11, 0x70, 0x70, 0x47, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x40, 0xBC, 0x19, 0x00, 0x20, 0x00, 0x01, 0x06, 0x40, 0xA4, 0x19, 0x00, 0x20, - 0x28, 0x02, 0x00, 0x20, 0x6C, 0x03, 0x00, 0x20, 0x6D, 0x03, 0x00, 0x20, 0x10, 0xB5, 0x00, 0x21, - 0x08, 0x46, 0x00, 0xF0, 0x05, 0xFA, 0x04, 0x46, 0x20, 0x01, 0x0C, 0x49, 0x40, 0x18, 0xC0, 0x6A, - 0x03, 0x21, 0x08, 0x43, 0x21, 0x01, 0x09, 0x4A, 0x89, 0x18, 0xC8, 0x62, 0x80, 0x21, 0x00, 0x20, - 0x00, 0xF0, 0xF6, 0xF9, 0x04, 0x46, 0x20, 0x01, 0x04, 0x49, 0x40, 0x18, 0xC0, 0x6A, 0x03, 0x21, - 0x08, 0x43, 0x21, 0x01, 0x01, 0x4A, 0x89, 0x18, 0xC8, 0x62, 0x10, 0xBD, 0x00, 0x00, 0x06, 0x40, - 0x70, 0xB5, 0x00, 0x24, 0x15, 0xE0, 0x20, 0x01, 0x0B, 0x49, 0x45, 0x18, 0xA8, 0x68, 0x00, 0x28, - 0x0E, 0xD0, 0x29, 0x78, 0x09, 0x48, 0x00, 0x78, 0x60, 0x22, 0x10, 0x40, 0x81, 0x42, 0x07, 0xD1, - 0x68, 0x78, 0x06, 0x49, 0x49, 0x78, 0x88, 0x42, 0x02, 0xD1, 0xA8, 0x68, 0x80, 0x47, 0x70, 0xBD, - 0x64, 0x1C, 0x0D, 0x2C, 0xE7, 0xD3, 0xFA, 0xE7, 0x58, 0x02, 0x00, 0x20, 0x64, 0x03, 0x00, 0x20, - 0x0B, 0x48, 0x00, 0x78, 0x00, 0x28, 0x03, 0xD1, 0x07, 0x20, 0x0A, 0x49, 0x08, 0x60, 0x0D, 0xE0, - 0x0F, 0x20, 0x08, 0x49, 0x08, 0x60, 0x06, 0x49, 0x09, 0x78, 0x48, 0x06, 0x40, 0x0E, 0x06, 0x49, - 0x89, 0x68, 0xC9, 0x09, 0xC9, 0x01, 0x01, 0x43, 0x03, 0x4A, 0x91, 0x60, 0x70, 0x47, 0x00, 0x00, - 0x6C, 0x03, 0x00, 0x20, 0x60, 0x03, 0x00, 0x20, 0x00, 0x00, 0x06, 0x40, 0x70, 0xB5, 0x00, 0x24, - 0x15, 0xE0, 0x20, 0x01, 0x0B, 0x49, 0x45, 0x18, 0xE8, 0x68, 0x00, 0x28, 0x0E, 0xD0, 0x29, 0x78, - 0x09, 0x48, 0x00, 0x78, 0x60, 0x22, 0x10, 0x40, 0x81, 0x42, 0x07, 0xD1, 0x68, 0x78, 0x06, 0x49, - 0x49, 0x78, 0x88, 0x42, 0x02, 0xD1, 0xE8, 0x68, 0x80, 0x47, 0x70, 0xBD, 0x64, 0x1C, 0x0D, 0x2C, - 0xE7, 0xD3, 0xFA, 0xE7, 0x58, 0x02, 0x00, 0x20, 0x64, 0x03, 0x00, 0x20, 0xF8, 0xB5, 0x00, 0x21, - 0x08, 0x46, 0x00, 0xF0, 0x85, 0xF9, 0x07, 0x46, 0x38, 0x01, 0x23, 0x49, 0x40, 0x18, 0xC0, 0x6A, - 0x01, 0x21, 0x08, 0x43, 0x39, 0x01, 0x20, 0x4A, 0x89, 0x18, 0xC8, 0x62, 0x80, 0x21, 0x00, 0x20, - 0x00, 0xF0, 0x76, 0xF9, 0x07, 0x46, 0x38, 0x01, 0x1B, 0x49, 0x40, 0x18, 0xC0, 0x6A, 0x01, 0x21, - 0x08, 0x43, 0x39, 0x01, 0x18, 0x4A, 0x89, 0x18, 0xC8, 0x62, 0x18, 0x48, 0x00, 0x68, 0x07, 0x28, - 0x02, 0xDA, 0xFF, 0xF7, 0x5B, 0xFF, 0xF8, 0xBD, 0x15, 0x48, 0x06, 0x6D, 0x00, 0x24, 0x03, 0xE0, - 0x30, 0x5D, 0x14, 0x49, 0x08, 0x55, 0x64, 0x1C, 0x08, 0x2C, 0xF9, 0xD3, 0x00, 0x24, 0x15, 0xE0, - 0x20, 0x01, 0x11, 0x49, 0x45, 0x18, 0x68, 0x68, 0x00, 0x28, 0x0E, 0xD0, 0x29, 0x78, 0x0D, 0x48, - 0x00, 0x78, 0x60, 0x22, 0x10, 0x40, 0x81, 0x42, 0x07, 0xD1, 0x68, 0x78, 0x09, 0x49, 0x49, 0x78, - 0x88, 0x42, 0x02, 0xD1, 0x68, 0x68, 0x80, 0x47, 0xDD, 0xE7, 0x64, 0x1C, 0x0D, 0x2C, 0xE7, 0xD3, - 0xFF, 0xF7, 0x34, 0xFF, 0xD7, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0x60, 0x03, 0x00, 0x20, - 0xBC, 0x19, 0x00, 0x20, 0x64, 0x03, 0x00, 0x20, 0x58, 0x02, 0x00, 0x20, 0x00, 0xBF, 0xFE, 0xE7, - 0x00, 0xB5, 0x01, 0x22, 0x02, 0x49, 0x00, 0x20, 0x00, 0xF0, 0x6A, 0xF8, 0x00, 0xBD, 0x00, 0x00, - 0x6D, 0x03, 0x00, 0x20, 0x00, 0xBF, 0xFE, 0xE7, 0x00, 0xBF, 0xFE, 0xE7, 0x00, 0xB5, 0x0A, 0x48, - 0x00, 0x68, 0x07, 0x28, 0x0C, 0xD1, 0x09, 0x48, 0x80, 0x78, 0x09, 0x49, 0x08, 0x70, 0x00, 0x22, - 0x11, 0x46, 0x10, 0x46, 0x00, 0xF0, 0x54, 0xF8, 0x0F, 0x20, 0x03, 0x49, 0x08, 0x60, 0x01, 0xE0, - 0xFF, 0xF7, 0x04, 0xFF, 0x00, 0xBD, 0x00, 0x00, 0x60, 0x03, 0x00, 0x20, 0x64, 0x03, 0x00, 0x20, - 0x6C, 0x03, 0x00, 0x20, 0x10, 0xB5, 0x1D, 0x48, 0x00, 0x68, 0x40, 0x68, 0x00, 0x28, 0x06, 0xD0, - 0x1B, 0x4A, 0x90, 0x78, 0x19, 0x4A, 0x12, 0x68, 0x51, 0x68, 0x88, 0x47, 0x00, 0xE0, 0x01, 0x20, - 0x04, 0x46, 0x17, 0x48, 0x80, 0x78, 0x00, 0x28, 0x0C, 0xD1, 0x0F, 0x20, 0x15, 0x49, 0x08, 0x60, - 0x13, 0x48, 0x80, 0x78, 0x14, 0x49, 0x08, 0x70, 0x00, 0x22, 0x11, 0x46, 0x10, 0x46, 0x00, 0xF0, - 0x27, 0xF8, 0x19, 0xE0, 0x00, 0x2C, 0x15, 0xD0, 0x1F, 0x20, 0x0E, 0x49, 0x08, 0x60, 0x0B, 0x48, - 0x00, 0x68, 0x00, 0x68, 0x00, 0x28, 0x03, 0xD0, 0x08, 0x49, 0x09, 0x68, 0x08, 0x68, 0x80, 0x47, - 0x07, 0x48, 0x80, 0x78, 0x08, 0x49, 0x08, 0x70, 0x00, 0x22, 0x11, 0x46, 0x10, 0x46, 0x00, 0xF0, - 0x0F, 0xF8, 0x01, 0xE0, 0xFF, 0xF7, 0xC2, 0xFE, 0x10, 0xBD, 0x00, 0x00, 0x70, 0x03, 0x00, 0x20, - 0x64, 0x03, 0x00, 0x20, 0x60, 0x03, 0x00, 0x20, 0x6D, 0x03, 0x00, 0x20, 0x00, 0xBF, 0xFE, 0xE7, - 0xF0, 0xB5, 0x04, 0x46, 0x0D, 0x46, 0x16, 0x46, 0x80, 0x21, 0x20, 0x46, 0x00, 0xF0, 0xB8, 0xF8, - 0x07, 0x46, 0x00, 0x2D, 0x0A, 0xD0, 0x00, 0x2E, 0x08, 0xD0, 0x0C, 0x21, 0x79, 0x43, 0x20, 0x4A, - 0x89, 0x18, 0x32, 0x46, 0x88, 0x68, 0x29, 0x46, 0x06, 0xF0, 0x98, 0xFF, 0x0C, 0x20, 0x78, 0x43, - 0x1B, 0x49, 0x40, 0x18, 0x80, 0x68, 0x1B, 0x49, 0x40, 0x1A, 0x39, 0x01, 0x1A, 0x4A, 0x89, 0x18, - 0x08, 0x62, 0x00, 0x2D, 0x06, 0xD1, 0x00, 0x2E, 0x04, 0xD1, 0x00, 0x20, 0xA1, 0x00, 0x17, 0x4A, - 0x50, 0x50, 0x0A, 0xE0, 0xA0, 0x00, 0x15, 0x49, 0x08, 0x58, 0x00, 0x28, 0x01, 0xD1, 0x01, 0x20, - 0x00, 0xE0, 0x00, 0x20, 0xA1, 0x00, 0x11, 0x4A, 0x50, 0x50, 0xA0, 0x00, 0x0F, 0x49, 0x08, 0x58, - 0x00, 0x28, 0x06, 0xD0, 0x38, 0x01, 0x0C, 0x49, 0x40, 0x18, 0x80, 0x6A, 0x0C, 0x49, 0x08, 0x40, - 0x05, 0xE0, 0x38, 0x01, 0x08, 0x49, 0x40, 0x18, 0x80, 0x6A, 0x80, 0x21, 0x08, 0x43, 0x39, 0x01, - 0x05, 0x4A, 0x89, 0x18, 0x88, 0x62, 0x38, 0x01, 0x11, 0x46, 0x40, 0x18, 0x46, 0x62, 0xF0, 0xBD, - 0xBC, 0x19, 0x00, 0x20, 0x00, 0x01, 0x06, 0x40, 0x00, 0x00, 0x06, 0x40, 0x10, 0x1A, 0x00, 0x20, - 0x7F, 0x03, 0x00, 0x00, 0xF8, 0xB5, 0x2C, 0x48, 0x00, 0x68, 0x2C, 0x49, 0x08, 0x40, 0x2A, 0x49, - 0x08, 0x60, 0x08, 0x46, 0x00, 0x68, 0xC0, 0x0F, 0xC0, 0x07, 0x08, 0xD0, 0x01, 0x20, 0xC0, 0x07, - 0x27, 0x49, 0x48, 0x60, 0x01, 0x20, 0x27, 0x49, 0x08, 0x60, 0xFF, 0xF7, 0xC7, 0xFE, 0x24, 0x48, - 0x40, 0x68, 0x21, 0x49, 0x08, 0x60, 0x08, 0x46, 0x00, 0x68, 0xFF, 0x21, 0x09, 0x04, 0x08, 0x40, - 0x1F, 0x49, 0x48, 0x60, 0x10, 0x27, 0x33, 0xE0, 0x01, 0x20, 0xB8, 0x40, 0x1A, 0x49, 0x09, 0x68, - 0x08, 0x42, 0x2C, 0xD0, 0x3D, 0x46, 0x10, 0x3D, 0x28, 0x01, 0x19, 0x49, 0x40, 0x18, 0x80, 0x6A, - 0x04, 0x07, 0x24, 0x0F, 0x68, 0x00, 0x29, 0x18, 0x09, 0x1D, 0x17, 0x48, 0x00, 0x68, 0xC8, 0x40, - 0x70, 0x21, 0x06, 0x46, 0x0E, 0x40, 0x00, 0x2E, 0x08, 0xD1, 0x00, 0x2C, 0x02, 0xD1, 0xFF, 0xF7, - 0x3F, 0xFE, 0x14, 0xE0, 0x00, 0x20, 0x11, 0x49, 0x08, 0x70, 0x10, 0xE0, 0x20, 0x2E, 0x06, 0xD1, - 0x01, 0x20, 0xA1, 0x00, 0x0B, 0x4A, 0x50, 0x50, 0xFF, 0xF7, 0x70, 0xFE, 0x07, 0xE0, 0x60, 0x2E, - 0x05, 0xD1, 0x00, 0x20, 0xA1, 0x00, 0x07, 0x4A, 0x50, 0x50, 0xFF, 0xF7, 0x67, 0xFE, 0x7F, 0x1C, - 0x16, 0x2F, 0xC9, 0xDB, 0xF8, 0xBD, 0x00, 0x00, 0x5C, 0x03, 0x00, 0x20, 0x00, 0x00, 0x3F, 0x80, - 0x00, 0x00, 0x06, 0x40, 0x10, 0x1A, 0x00, 0x20, 0x54, 0x03, 0x00, 0x20, 0x4C, 0x03, 0x00, 0x20, - 0x10, 0xB5, 0x03, 0x46, 0x00, 0x22, 0x0A, 0xE0, 0x0C, 0x20, 0x50, 0x43, 0x06, 0x4C, 0x24, 0x58, - 0x18, 0x46, 0x08, 0x43, 0x84, 0x42, 0x01, 0xD1, 0x10, 0x46, 0x10, 0xBD, 0x52, 0x1C, 0x06, 0x2A, - 0xF2, 0xD3, 0x02, 0x48, 0xF9, 0xE7, 0x00, 0x00, 0xBC, 0x19, 0x00, 0x20, 0x02, 0x99, 0xFF, 0xFF, - 0x30, 0xB5, 0x04, 0x46, 0x80, 0x21, 0x20, 0x46, 0xFF, 0xF7, 0xE2, 0xFF, 0x05, 0x46, 0x13, 0x48, - 0x85, 0x42, 0x0C, 0xD0, 0xA8, 0x00, 0x12, 0x49, 0x08, 0x58, 0x80, 0x05, 0x80, 0x0D, 0x29, 0x01, - 0x10, 0x4A, 0x89, 0x18, 0x88, 0x62, 0x01, 0x20, 0x29, 0x01, 0x89, 0x18, 0xC8, 0x62, 0x00, 0x21, - 0x20, 0x46, 0xFF, 0xF7, 0xCD, 0xFF, 0x05, 0x46, 0x08, 0x48, 0x85, 0x42, 0x0C, 0xD0, 0xA8, 0x00, - 0x07, 0x49, 0x08, 0x58, 0x80, 0x05, 0x80, 0x0D, 0x29, 0x01, 0x06, 0x4A, 0x89, 0x18, 0x88, 0x62, - 0x01, 0x20, 0x29, 0x01, 0x89, 0x18, 0xC8, 0x62, 0x30, 0xBD, 0x00, 0x00, 0x02, 0x99, 0xFF, 0xFF, - 0xA4, 0x19, 0x00, 0x20, 0x00, 0x00, 0x06, 0x40, 0x10, 0xB5, 0x01, 0x20, 0x80, 0x03, 0x05, 0x49, - 0x08, 0x62, 0x05, 0x48, 0x00, 0x68, 0x00, 0x28, 0x02, 0xD0, 0x03, 0x48, 0x00, 0x68, 0x80, 0x47, - 0x10, 0xBD, 0x00, 0x00, 0x40, 0x40, 0x00, 0x50, 0x0C, 0x01, 0x00, 0x20, 0x10, 0xB5, 0x01, 0x20, - 0xC0, 0x03, 0x05, 0x49, 0x08, 0x62, 0x05, 0x48, 0x00, 0x68, 0x00, 0x28, 0x02, 0xD0, 0x03, 0x48, - 0x00, 0x68, 0x80, 0x47, 0x10, 0xBD, 0x00, 0x00, 0x40, 0x40, 0x00, 0x50, 0x10, 0x01, 0x00, 0x20, - 0xF8, 0xB5, 0x56, 0x48, 0x01, 0x7E, 0x00, 0x29, 0x7E, 0xD0, 0x07, 0x46, 0x00, 0x26, 0x80, 0x37, - 0x04, 0x46, 0x60, 0x34, 0x9C, 0xE0, 0x78, 0x69, 0xB5, 0x00, 0x42, 0x5D, 0x22, 0x80, 0x29, 0x18, - 0x48, 0x78, 0x60, 0x80, 0x88, 0x78, 0xA0, 0x80, 0xC9, 0x78, 0xE1, 0x80, 0x13, 0x46, 0x00, 0xF0, - 0xA3, 0xFD, 0x00, 0x90, 0x00, 0x23, 0xE3, 0x5E, 0x06, 0x21, 0x18, 0x46, 0x42, 0x1E, 0x04, 0x20, - 0x61, 0x5E, 0x20, 0x5E, 0x5B, 0x1E, 0x49, 0x1C, 0x40, 0x1E, 0x00, 0xF0, 0x95, 0xFD, 0x01, 0x46, - 0x00, 0x98, 0x42, 0x00, 0x80, 0x18, 0xC2, 0x17, 0x92, 0x0F, 0x10, 0x18, 0x82, 0x10, 0x8A, 0x42, - 0x03, 0xDD, 0x20, 0x88, 0x79, 0x69, 0x40, 0x1E, 0x48, 0x55, 0x02, 0x23, 0xE3, 0x5E, 0x06, 0x21, - 0x04, 0x20, 0x1A, 0x46, 0x61, 0x5E, 0x20, 0x5E, 0x00, 0xF0, 0x7E, 0xFD, 0x00, 0x90, 0x02, 0x23, - 0xE3, 0x5E, 0x06, 0x21, 0x18, 0x46, 0x42, 0x1C, 0x04, 0x20, 0x61, 0x5E, 0x20, 0x5E, 0x5B, 0x1C, - 0x49, 0x1C, 0x40, 0x1E, 0x00, 0xF0, 0x70, 0xFD, 0x01, 0x46, 0x00, 0x98, 0x42, 0x00, 0x80, 0x18, - 0xC2, 0x17, 0x92, 0x0F, 0x10, 0x18, 0x82, 0x10, 0x8A, 0x42, 0x04, 0xDD, 0x60, 0x88, 0x79, 0x69, - 0x40, 0x1C, 0x69, 0x18, 0x48, 0x70, 0x04, 0x21, 0x61, 0x5E, 0x02, 0x23, 0x00, 0x22, 0xE3, 0x5E, - 0xA2, 0x5E, 0x08, 0x46, 0x00, 0xF0, 0x58, 0xFD, 0x00, 0x90, 0x04, 0x20, 0x02, 0x23, 0x00, 0x22, - 0x20, 0x5E, 0xE3, 0x5E, 0xA2, 0x5E, 0x41, 0x1E, 0x5B, 0x1C, 0x52, 0x1E, 0x40, 0x1E, 0x00, 0xF0, - 0x4B, 0xFD, 0x01, 0x46, 0x00, 0x98, 0x42, 0x00, 0x80, 0x18, 0xC2, 0x17, 0x92, 0x0F, 0x10, 0x18, - 0x82, 0x10, 0x8A, 0x42, 0x04, 0xDD, 0xA0, 0x88, 0x79, 0x69, 0x40, 0x1E, 0x69, 0x18, 0x88, 0x70, - 0x02, 0x23, 0xE3, 0x5E, 0x00, 0x22, 0x00, 0xE0, 0x27, 0xE0, 0x06, 0x21, 0x61, 0x5E, 0xA2, 0x5E, - 0x08, 0x46, 0x00, 0xF0, 0x31, 0xFD, 0x00, 0x90, 0x06, 0x20, 0x02, 0x23, 0x00, 0x22, 0x20, 0x5E, - 0xE3, 0x5E, 0xA2, 0x5E, 0x41, 0x1C, 0x5B, 0x1C, 0x52, 0x1E, 0x40, 0x1C, 0x00, 0xF0, 0x24, 0xFD, - 0x01, 0x46, 0x00, 0x98, 0x42, 0x00, 0x80, 0x18, 0xC2, 0x17, 0x92, 0x0F, 0x10, 0x18, 0x82, 0x10, - 0x8A, 0x42, 0x04, 0xDD, 0xE0, 0x88, 0x79, 0x69, 0x40, 0x1C, 0x69, 0x18, 0xC8, 0x70, 0x76, 0x1C, - 0x02, 0x48, 0x00, 0x7E, 0x86, 0x42, 0x00, 0xDA, 0x5D, 0xE7, 0xF8, 0xBD, 0x24, 0x01, 0x00, 0x20, - 0xF0, 0xB5, 0x87, 0xB0, 0xFF, 0x4F, 0x78, 0x7D, 0x0F, 0x28, 0x7E, 0xD8, 0x40, 0x1C, 0x78, 0x75, - 0x38, 0x46, 0x80, 0x30, 0xC5, 0x69, 0x83, 0x68, 0x68, 0x00, 0x3C, 0x46, 0x40, 0x34, 0x19, 0x5E, - 0x20, 0x46, 0x61, 0x82, 0x20, 0x38, 0xC2, 0x78, 0x18, 0x20, 0x20, 0x5E, 0x01, 0x2A, 0x05, 0xD1, - 0xCA, 0x17, 0x92, 0x0F, 0x86, 0x10, 0x51, 0x18, 0x89, 0x10, 0x09, 0xE0, 0x42, 0x00, 0x82, 0x18, - 0xD6, 0x17, 0xB6, 0x0F, 0xB2, 0x18, 0x92, 0x10, 0x16, 0xB2, 0xCA, 0x0F, 0x51, 0x18, 0x49, 0x10, - 0x09, 0xB2, 0x01, 0x91, 0xB1, 0x10, 0xEB, 0x49, 0x3A, 0x7D, 0x09, 0x7C, 0xE9, 0x4A, 0x69, 0x18, - 0x80, 0x32, 0x89, 0x1C, 0xD1, 0x61, 0x12, 0x69, 0xE6, 0x4D, 0x94, 0x46, 0x52, 0x5C, 0x01, 0x27, - 0x60, 0x35, 0x01, 0x2A, 0x20, 0xD0, 0x4A, 0x00, 0x9A, 0x5E, 0x62, 0x82, 0xB2, 0x42, 0x19, 0xDD, - 0x82, 0x42, 0x00, 0xDD, 0x22, 0x83, 0xA0, 0x8B, 0x62, 0x46, 0x40, 0x1C, 0xA0, 0x83, 0x57, 0x54, - 0xDC, 0x49, 0xDC, 0x48, 0x09, 0x7C, 0x80, 0x30, 0x89, 0x1C, 0xC0, 0x69, 0xFC, 0xF7, 0x00, 0xFD, - 0x00, 0xB2, 0xA0, 0x82, 0x06, 0x21, 0x69, 0x5E, 0x88, 0x42, 0x00, 0xDD, 0xE8, 0x80, 0xFF, 0xF7, - 0xA7, 0xFF, 0x01, 0xE0, 0x60, 0x46, 0x47, 0x54, 0xD2, 0x49, 0xD2, 0x4A, 0x80, 0x31, 0x12, 0x7C, - 0xC8, 0x69, 0x80, 0x1A, 0x40, 0x1E, 0xC8, 0x61, 0x0B, 0x69, 0x19, 0x5C, 0x01, 0x29, 0x25, 0xD0, - 0xCC, 0x4A, 0x41, 0x00, 0x80, 0x32, 0x92, 0x68, 0x51, 0x5E, 0x61, 0x82, 0xB1, 0x42, 0x1C, 0xDD, - 0x18, 0x22, 0xA2, 0x5E, 0x91, 0x42, 0x00, 0xDD, 0x21, 0x83, 0xA1, 0x8B, 0xC5, 0x4A, 0x49, 0x1C, - 0xA1, 0x83, 0x1F, 0x54, 0xC3, 0x48, 0x80, 0x32, 0x01, 0x7C, 0xD0, 0x69, 0x89, 0x1C, 0xFC, 0xF7, - 0xCF, 0xFC, 0x08, 0xB2, 0xA0, 0x82, 0x02, 0x21, 0x00, 0xE0, 0xA8, 0xE1, 0x69, 0x5E, 0x88, 0x42, - 0x00, 0xDD, 0x68, 0x80, 0xFF, 0xF7, 0x74, 0xFF, 0x00, 0xE0, 0x1F, 0x54, 0xB9, 0x49, 0xB9, 0x4A, - 0x80, 0x31, 0x12, 0x7C, 0xC8, 0x69, 0x80, 0x1A, 0xC0, 0x1E, 0xC8, 0x61, 0x0B, 0x69, 0x19, 0x5C, - 0x01, 0x29, 0x23, 0xD0, 0xB3, 0x4A, 0x41, 0x00, 0x80, 0x32, 0x92, 0x68, 0x51, 0x5E, 0x61, 0x82, - 0xB1, 0x42, 0x1A, 0xDD, 0x18, 0x22, 0xA2, 0x5E, 0x91, 0x42, 0x00, 0xDD, 0x21, 0x83, 0xA1, 0x8B, - 0xAC, 0x4A, 0x49, 0x1C, 0xA1, 0x83, 0x1F, 0x54, 0xAA, 0x48, 0x80, 0x32, 0x01, 0x7C, 0xD0, 0x69, - 0x89, 0x1C, 0xFC, 0xF7, 0x9D, 0xFC, 0x00, 0xB2, 0xA0, 0x82, 0x04, 0x21, 0x69, 0x5E, 0x88, 0x42, - 0x00, 0xDA, 0xA8, 0x80, 0xFF, 0xF7, 0x44, 0xFF, 0x00, 0xE0, 0x1F, 0x54, 0xA1, 0x49, 0xA1, 0x4A, - 0x80, 0x31, 0x12, 0x7C, 0xC8, 0x69, 0x80, 0x18, 0x40, 0x1C, 0xC8, 0x61, 0x0B, 0x69, 0x19, 0x5C, - 0x01, 0x29, 0x23, 0xD0, 0x9B, 0x4A, 0x41, 0x00, 0x80, 0x32, 0x92, 0x68, 0x51, 0x5E, 0x61, 0x82, - 0xB1, 0x42, 0x1A, 0xDD, 0x18, 0x22, 0xA2, 0x5E, 0x91, 0x42, 0x00, 0xDD, 0x21, 0x83, 0xA1, 0x8B, - 0x94, 0x4A, 0x49, 0x1C, 0xA1, 0x83, 0x1F, 0x54, 0x92, 0x48, 0x80, 0x32, 0x01, 0x7C, 0xD0, 0x69, - 0x89, 0x1C, 0xFC, 0xF7, 0x6D, 0xFC, 0x08, 0xB2, 0xA0, 0x82, 0x00, 0x21, 0x69, 0x5E, 0x88, 0x42, - 0x00, 0xDA, 0x28, 0x80, 0xFF, 0xF7, 0x14, 0xFF, 0x00, 0xE0, 0x1F, 0x54, 0xF0, 0x10, 0x89, 0x4A, - 0x30, 0x1A, 0x88, 0x49, 0x06, 0xB2, 0x80, 0x32, 0x09, 0x7C, 0xD0, 0x69, 0x06, 0x91, 0x40, 0x1A, - 0x80, 0x1E, 0xD0, 0x61, 0x11, 0x69, 0x0A, 0x5C, 0x05, 0x91, 0x01, 0x2A, 0x40, 0xD0, 0x81, 0x49, - 0x42, 0x00, 0x80, 0x31, 0x89, 0x68, 0x8C, 0x46, 0x89, 0x5E, 0x61, 0x82, 0xB1, 0x42, 0x37, 0xDD, - 0x63, 0x46, 0xD3, 0x18, 0x02, 0x22, 0x9A, 0x5E, 0x52, 0x10, 0xA2, 0x82, 0x06, 0x9B, 0x96, 0x46, - 0xC3, 0x18, 0x5B, 0x00, 0x62, 0x46, 0x9A, 0x18, 0x04, 0x23, 0xD3, 0x5E, 0x72, 0x46, 0x5B, 0x10, - 0xE3, 0x82, 0xD2, 0x18, 0xA2, 0x82, 0x01, 0x9B, 0x9A, 0x42, 0x21, 0xDD, 0x18, 0x22, 0xA2, 0x5E, - 0x91, 0x42, 0x00, 0xDD, 0x21, 0x83, 0xA1, 0x8B, 0x6E, 0x4A, 0x49, 0x1C, 0xA1, 0x83, 0x05, 0x99, - 0x80, 0x32, 0x0F, 0x54, 0x6B, 0x48, 0x01, 0x7C, 0xD0, 0x69, 0x89, 0x1C, 0xFC, 0xF7, 0x20, 0xFC, - 0x09, 0xB2, 0xA1, 0x82, 0x00, 0x22, 0xAA, 0x5E, 0x91, 0x42, 0x00, 0xDA, 0x29, 0x80, 0x00, 0xB2, - 0xA0, 0x82, 0x04, 0x21, 0x69, 0x5E, 0x88, 0x42, 0x00, 0xDA, 0xA8, 0x80, 0xFF, 0xF7, 0xC0, 0xFE, - 0x60, 0x49, 0x80, 0x31, 0xC8, 0x69, 0x80, 0x1C, 0xC8, 0x61, 0x09, 0x69, 0x0A, 0x5C, 0x04, 0x91, - 0x01, 0x2A, 0x3F, 0xD0, 0x5B, 0x49, 0x42, 0x00, 0x80, 0x31, 0x89, 0x68, 0x8B, 0x5E, 0x63, 0x82, - 0x9C, 0x46, 0xB3, 0x42, 0x36, 0xDD, 0x53, 0x18, 0x20, 0x3B, 0x1E, 0x22, 0x9A, 0x5E, 0x55, 0x4B, - 0x52, 0x10, 0xA2, 0x82, 0x1B, 0x7C, 0xC3, 0x18, 0x5B, 0x00, 0x5B, 0x18, 0x04, 0x21, 0x59, 0x5E, - 0x49, 0x10, 0xE1, 0x82, 0x51, 0x18, 0xA1, 0x82, 0x01, 0x9A, 0x91, 0x42, 0x22, 0xDD, 0x18, 0x22, - 0xA2, 0x5E, 0x94, 0x45, 0x01, 0xDD, 0x61, 0x46, 0x21, 0x83, 0xA1, 0x8B, 0x49, 0x4A, 0x49, 0x1C, - 0xA1, 0x83, 0x04, 0x99, 0x80, 0x32, 0x0F, 0x54, 0x46, 0x48, 0x01, 0x7C, 0xD0, 0x69, 0x89, 0x1C, - 0xFC, 0xF7, 0xD6, 0xFB, 0x09, 0xB2, 0xA1, 0x82, 0x02, 0x22, 0xAA, 0x5E, 0x91, 0x42, 0x00, 0xDD, - 0x69, 0x80, 0x00, 0xB2, 0xA0, 0x82, 0x04, 0x21, 0x69, 0x5E, 0x88, 0x42, 0x00, 0xDA, 0xA8, 0x80, - 0xFF, 0xF7, 0x76, 0xFE, 0x3B, 0x48, 0x3B, 0x49, 0x00, 0x7C, 0x80, 0x31, 0x03, 0x90, 0xCA, 0x69, - 0x40, 0x00, 0x80, 0x18, 0x00, 0x1D, 0xC8, 0x61, 0x09, 0x69, 0x0A, 0x5C, 0x02, 0x91, 0x01, 0x2A, - 0x3F, 0xD0, 0x34, 0x49, 0x42, 0x00, 0x80, 0x31, 0x89, 0x68, 0x8B, 0x5E, 0x63, 0x82, 0x9C, 0x46, - 0xB3, 0x42, 0x36, 0xDD, 0x53, 0x18, 0x20, 0x3B, 0x1E, 0x22, 0x9A, 0x5E, 0x52, 0x10, 0xA2, 0x82, - 0x03, 0x9B, 0xC3, 0x1A, 0x5B, 0x00, 0x5B, 0x18, 0x20, 0x3B, 0x1C, 0x21, 0x59, 0x5E, 0x49, 0x10, - 0xE1, 0x82, 0x51, 0x18, 0xA1, 0x82, 0x01, 0x9A, 0x91, 0x42, 0x22, 0xDD, 0x18, 0x22, 0xA2, 0x5E, - 0x94, 0x45, 0x01, 0xDD, 0x61, 0x46, 0x21, 0x83, 0xA1, 0x8B, 0x22, 0x4A, 0x49, 0x1C, 0xA1, 0x83, - 0x02, 0x99, 0x80, 0x32, 0x0F, 0x54, 0x1F, 0x48, 0x01, 0x7C, 0xD0, 0x69, 0x89, 0x1C, 0xFC, 0xF7, - 0x87, 0xFB, 0x09, 0xB2, 0xA1, 0x82, 0x02, 0x22, 0xAA, 0x5E, 0x91, 0x42, 0x00, 0xDD, 0x69, 0x80, - 0x00, 0xB2, 0xA0, 0x82, 0x06, 0x21, 0x69, 0x5E, 0x88, 0x42, 0x00, 0xDD, 0xE8, 0x80, 0xFF, 0xF7, - 0x27, 0xFE, 0x14, 0x49, 0x80, 0x31, 0xC8, 0x69, 0x80, 0x1E, 0xC8, 0x61, 0x09, 0x69, 0x0A, 0x5C, - 0x8C, 0x46, 0x01, 0x2A, 0x40, 0xD0, 0x0F, 0x49, 0x43, 0x00, 0x80, 0x31, 0x89, 0x68, 0xCA, 0x5E, - 0x62, 0x82, 0xB2, 0x42, 0x38, 0xDD, 0x5E, 0x18, 0x02, 0x23, 0xF3, 0x5E, 0x5E, 0x10, 0x09, 0x4B, - 0xA6, 0x82, 0x1B, 0x7C, 0xC3, 0x1A, 0x5B, 0x00, 0x59, 0x18, 0x20, 0x39, 0x1C, 0x23, 0xCB, 0x5E, - 0x59, 0x10, 0xE1, 0x82, 0x71, 0x18, 0xA1, 0x82, 0x01, 0x9B, 0x99, 0x42, 0x24, 0xDD, 0x18, 0x21, - 0x61, 0x5E, 0x01, 0xE0, 0x24, 0x01, 0x00, 0x20, 0x8A, 0x42, 0x00, 0xDD, 0x22, 0x83, 0xA1, 0x8B, - 0x14, 0x4A, 0x49, 0x1C, 0xA1, 0x83, 0x61, 0x46, 0x0F, 0x54, 0x10, 0x46, 0x80, 0x38, 0x01, 0x7C, - 0xD0, 0x69, 0x89, 0x1C, 0xFC, 0xF7, 0x3C, 0xFB, 0x09, 0xB2, 0xA1, 0x82, 0x00, 0x22, 0xAA, 0x5E, - 0x91, 0x42, 0x00, 0xDA, 0x29, 0x80, 0x00, 0xB2, 0xA0, 0x82, 0x06, 0x21, 0x69, 0x5E, 0x88, 0x42, - 0x00, 0xDD, 0xE8, 0x80, 0xFF, 0xF7, 0xDC, 0xFD, 0x06, 0x4A, 0x10, 0x46, 0x80, 0x38, 0x03, 0x7C, - 0xD1, 0x69, 0xC9, 0x1A, 0x49, 0x1E, 0xD1, 0x61, 0x41, 0x7D, 0x49, 0x1E, 0x41, 0x75, 0x07, 0xB0, - 0xF0, 0xBD, 0x00, 0x00, 0xA4, 0x01, 0x00, 0x20, 0xF3, 0xB5, 0x85, 0xB0, 0x04, 0x46, 0x03, 0xAA, - 0x04, 0xA9, 0x00, 0xF0, 0x97, 0xFA, 0x5A, 0x49, 0x01, 0xAA, 0x08, 0x83, 0x02, 0xA9, 0x06, 0x98, - 0x00, 0xF0, 0x90, 0xFA, 0x56, 0x4A, 0x06, 0x9B, 0x40, 0x32, 0x50, 0x69, 0xA5, 0x00, 0x9E, 0x00, - 0x41, 0x5D, 0x83, 0x5D, 0x99, 0x42, 0x00, 0xD3, 0x19, 0x46, 0x51, 0x4C, 0x8C, 0x46, 0x20, 0x34, - 0x21, 0x80, 0x29, 0x18, 0x37, 0x18, 0x4B, 0x78, 0x78, 0x78, 0x83, 0x42, 0x00, 0xD8, 0x03, 0x46, - 0x63, 0x80, 0x88, 0x78, 0xBA, 0x78, 0x90, 0x42, 0x00, 0xD3, 0x10, 0x46, 0xA0, 0x80, 0xC9, 0x78, - 0xFA, 0x78, 0x91, 0x42, 0x00, 0xD8, 0x11, 0x46, 0xE1, 0x80, 0x62, 0x46, 0x5B, 0x1C, 0x52, 0x1E, - 0x49, 0x1C, 0x40, 0x1E, 0x04, 0xF0, 0xB2, 0xFB, 0x02, 0x23, 0x00, 0x22, 0x06, 0x21, 0x04, 0x20, - 0xE3, 0x5E, 0xA2, 0x5E, 0x61, 0x5E, 0x20, 0x5E, 0xFD, 0xF7, 0x46, 0xFB, 0x3C, 0x4A, 0x03, 0x98, - 0x40, 0x3A, 0x11, 0x7C, 0x03, 0x46, 0x89, 0x1C, 0x4B, 0x43, 0x04, 0x99, 0x17, 0x46, 0x5B, 0x18, - 0x80, 0x37, 0xFB, 0x61, 0x21, 0x80, 0x61, 0x80, 0xA0, 0x80, 0xE0, 0x80, 0x10, 0x46, 0x01, 0x21, - 0x20, 0x30, 0xC1, 0x70, 0x00, 0x20, 0x50, 0x75, 0xFF, 0xF7, 0x72, 0xFD, 0x00, 0x21, 0x61, 0x5E, - 0x02, 0x98, 0x88, 0x42, 0x5A, 0xDB, 0x02, 0x21, 0x61, 0x5E, 0x88, 0x42, 0x56, 0xDC, 0x04, 0x21, - 0x61, 0x5E, 0x01, 0x98, 0x88, 0x42, 0x51, 0xDB, 0x06, 0x21, 0x61, 0x5E, 0x88, 0x42, 0x4D, 0xDC, - 0x78, 0x69, 0x82, 0x5D, 0x41, 0x5D, 0x91, 0x42, 0x00, 0xD3, 0x11, 0x46, 0x41, 0x55, 0x78, 0x69, - 0x31, 0x18, 0x2A, 0x18, 0x49, 0x78, 0x50, 0x78, 0x88, 0x42, 0x00, 0xD8, 0x08, 0x46, 0x50, 0x70, - 0x78, 0x69, 0x31, 0x18, 0x8A, 0x78, 0x29, 0x18, 0x88, 0x78, 0x90, 0x42, 0x00, 0xD3, 0x10, 0x46, - 0x88, 0x70, 0x78, 0x69, 0x31, 0x18, 0x2A, 0x18, 0xC9, 0x78, 0xD0, 0x78, 0x88, 0x42, 0x00, 0xD8, - 0x08, 0x46, 0xD0, 0x70, 0x16, 0x4A, 0x06, 0x98, 0x40, 0x3A, 0x04, 0x90, 0x1F, 0xE0, 0xB9, 0x69, - 0x40, 0x00, 0x43, 0x18, 0x5B, 0x88, 0x0B, 0x52, 0x04, 0x98, 0x79, 0x69, 0x80, 0x00, 0x43, 0x18, - 0x1B, 0x79, 0x0B, 0x54, 0x04, 0x98, 0x79, 0x69, 0x80, 0x00, 0x40, 0x18, 0x41, 0x79, 0x41, 0x70, - 0x04, 0x98, 0x79, 0x69, 0x80, 0x00, 0x40, 0x18, 0x81, 0x79, 0x81, 0x70, 0x04, 0x98, 0x79, 0x69, - 0x80, 0x00, 0x40, 0x18, 0xC1, 0x79, 0xC1, 0x70, 0x04, 0x98, 0x40, 0x1C, 0x04, 0x90, 0x11, 0x7E, - 0x49, 0x1E, 0x88, 0x42, 0xDB, 0xDB, 0x10, 0x7E, 0x40, 0x1E, 0x10, 0x76, 0x07, 0xB0, 0xF0, 0xBD, - 0x64, 0x01, 0x00, 0x20, 0x10, 0xB5, 0x1A, 0x4B, 0x02, 0x46, 0x1B, 0x7B, 0x08, 0x46, 0x19, 0x07, - 0x09, 0x0F, 0x03, 0x29, 0x0F, 0xD1, 0x00, 0x2A, 0x0E, 0xD0, 0x16, 0x4C, 0x01, 0x2A, 0x0E, 0xD0, - 0x02, 0x2A, 0x08, 0xD1, 0x00, 0x20, 0x05, 0xF0, 0xC5, 0xFA, 0x00, 0x20, 0x10, 0x49, 0x60, 0x70, - 0x20, 0x72, 0x60, 0x39, 0x48, 0x74, 0x10, 0xBD, 0x05, 0xF0, 0xB6, 0xFB, 0x10, 0xBD, 0x61, 0x79, - 0x00, 0x29, 0x11, 0xD0, 0x01, 0xF0, 0x90, 0xFF, 0xE0, 0x79, 0x10, 0x28, 0x06, 0xD2, 0x01, 0x21, - 0x61, 0x72, 0x40, 0x1C, 0xE0, 0x71, 0x00, 0xF0, 0x17, 0xFA, 0x05, 0xE0, 0xFD, 0xF7, 0x1A, 0xFB, - 0x01, 0xF0, 0x6E, 0xFC, 0x01, 0xF0, 0x58, 0xFC, 0x01, 0xF0, 0xE8, 0xFE, 0x10, 0xBD, 0x00, 0x00, - 0x54, 0x04, 0x00, 0x20, 0x80, 0x03, 0x00, 0x20, 0x70, 0xB5, 0x0C, 0x48, 0x05, 0x6A, 0x0B, 0x48, - 0x40, 0x30, 0x04, 0x6A, 0x03, 0x21, 0x89, 0x03, 0x20, 0x46, 0x88, 0x43, 0x04, 0x46, 0x07, 0x48, - 0x05, 0x62, 0x06, 0x48, 0x40, 0x30, 0x04, 0x62, 0x05, 0x48, 0x00, 0x68, 0x00, 0x28, 0x04, 0xD0, - 0x21, 0x46, 0x28, 0x46, 0x02, 0x4A, 0x12, 0x68, 0x90, 0x47, 0x70, 0xBD, 0x00, 0x40, 0x00, 0x50, - 0x04, 0x01, 0x00, 0x20, 0x70, 0xB5, 0x0A, 0x48, 0x04, 0x6A, 0x09, 0x48, 0x40, 0x30, 0x05, 0x6A, - 0x07, 0x48, 0x04, 0x62, 0x06, 0x48, 0x40, 0x30, 0x05, 0x62, 0x06, 0x48, 0x00, 0x68, 0x00, 0x28, - 0x04, 0xD0, 0x29, 0x46, 0x20, 0x46, 0x03, 0x4A, 0x12, 0x68, 0x90, 0x47, 0x70, 0xBD, 0x00, 0x00, - 0x80, 0x40, 0x00, 0x50, 0x08, 0x01, 0x00, 0x20, 0x0D, 0x48, 0x01, 0x7F, 0x03, 0x29, 0x01, 0xD0, - 0x02, 0x21, 0x01, 0x77, 0x00, 0x21, 0x01, 0x70, 0x41, 0x70, 0x0A, 0x48, 0x01, 0x6A, 0x42, 0x02, - 0x91, 0x43, 0x01, 0x62, 0x01, 0x6A, 0xC2, 0x01, 0x91, 0x43, 0x01, 0x62, 0x01, 0x68, 0x80, 0x22, - 0x91, 0x43, 0x01, 0x60, 0x01, 0x68, 0x52, 0x00, 0x91, 0x43, 0x01, 0x60, 0x70, 0x47, 0x00, 0x00, - 0x1C, 0x00, 0x00, 0x20, 0x00, 0x02, 0x00, 0x50, 0x30, 0xB5, 0x85, 0xB0, 0x10, 0x48, 0x04, 0x68, - 0x23, 0x20, 0x40, 0x01, 0x25, 0x18, 0x03, 0x22, 0x0E, 0x48, 0x03, 0x95, 0x02, 0x94, 0x04, 0x92, - 0x02, 0x88, 0x00, 0x21, 0x01, 0x92, 0x00, 0x91, 0x0A, 0x46, 0x95, 0x21, 0x09, 0x01, 0xA0, 0x20, - 0x00, 0x23, 0x00, 0xF0, 0x25, 0xFE, 0x07, 0x48, 0x01, 0x88, 0x20, 0x46, 0x01, 0xF0, 0x24, 0xFF, - 0x04, 0x48, 0x01, 0x88, 0x28, 0x46, 0x01, 0xF0, 0x1F, 0xFF, 0x05, 0xB0, 0x30, 0xBD, 0x00, 0x00, - 0xB0, 0x01, 0x00, 0x20, 0x02, 0x01, 0x00, 0x20, 0x05, 0x48, 0x80, 0x69, 0x40, 0x04, 0xC0, 0x0F, - 0x03, 0xD1, 0x03, 0x48, 0x00, 0x68, 0xC0, 0xB2, 0x70, 0x47, 0xFF, 0x20, 0xFC, 0xE7, 0x00, 0x00, - 0x00, 0x00, 0x15, 0x40, 0xFE, 0xB5, 0x30, 0x4A, 0x00, 0x20, 0x04, 0x25, 0x55, 0x5F, 0x14, 0x5E, - 0x94, 0x46, 0x60, 0x3A, 0x01, 0x95, 0x16, 0x7C, 0x62, 0x46, 0x02, 0x23, 0xD3, 0x5E, 0x2A, 0x4A, - 0xB6, 0x46, 0xB6, 0x1C, 0x20, 0x32, 0x00, 0x96, 0x92, 0x68, 0x01, 0x46, 0x01, 0x2D, 0x0B, 0xDB, - 0x6F, 0x1E, 0x77, 0x43, 0x25, 0x46, 0x05, 0xE0, 0x7E, 0x19, 0x76, 0x00, 0x96, 0x5F, 0x49, 0x1C, - 0x30, 0x18, 0x6D, 0x1C, 0x9D, 0x42, 0xF7, 0xDD, 0x65, 0x46, 0x06, 0x26, 0xAE, 0x5F, 0x1E, 0x4D, - 0xB4, 0x46, 0x60, 0x3D, 0x6D, 0x7C, 0xAE, 0x42, 0x0E, 0xDC, 0x65, 0x46, 0x00, 0x9E, 0x6D, 0x1C, - 0x75, 0x43, 0x2F, 0x46, 0x25, 0x46, 0x05, 0xE0, 0x7E, 0x19, 0x76, 0x00, 0x96, 0x5F, 0x49, 0x1C, - 0x80, 0x19, 0x6D, 0x1C, 0x9D, 0x42, 0xF7, 0xDD, 0x13, 0x4F, 0x64, 0x26, 0x60, 0x3F, 0x3D, 0x7C, - 0xBE, 0x5F, 0xAD, 0x1C, 0x6E, 0x43, 0x01, 0x2C, 0x0C, 0xDB, 0x64, 0x1E, 0x35, 0x19, 0x01, 0x9C, - 0x06, 0xE0, 0x6F, 0x00, 0xD7, 0x5F, 0x75, 0x44, 0xC0, 0x19, 0x49, 0x1C, 0xAD, 0x1C, 0x64, 0x1C, - 0x64, 0x45, 0xF6, 0xDD, 0x73, 0x45, 0x0C, 0xDC, 0x5B, 0x1C, 0xF4, 0x18, 0x01, 0x9B, 0x06, 0xE0, - 0x65, 0x00, 0x55, 0x5F, 0x74, 0x44, 0x40, 0x19, 0x49, 0x1C, 0xA4, 0x1C, 0x5B, 0x1C, 0x63, 0x45, - 0xF6, 0xDD, 0xFC, 0xF7, 0x35, 0xF9, 0xFE, 0xBD, 0x84, 0x01, 0x00, 0x20, 0x70, 0xB5, 0x0A, 0x4D, - 0xFF, 0x20, 0xA8, 0x70, 0x09, 0x48, 0xA8, 0x84, 0x00, 0x24, 0xFE, 0xF7, 0x3B, 0xF8, 0xFF, 0xF7, - 0x83, 0xFF, 0xFF, 0x28, 0x03, 0xD0, 0x30, 0x21, 0x48, 0x43, 0xA8, 0x84, 0x70, 0xBD, 0x64, 0x1C, - 0x0A, 0x2C, 0xF2, 0xDB, 0x70, 0xBD, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x20, 0x10, 0x27, 0x00, 0x00, - 0xC1, 0x07, 0xC2, 0x0F, 0x10, 0x18, 0x42, 0x10, 0x07, 0x48, 0x10, 0x18, 0x00, 0x78, 0x00, 0x29, - 0x02, 0xD0, 0x00, 0x07, 0x00, 0x0F, 0x00, 0xE0, 0x00, 0x09, 0x08, 0x28, 0x02, 0xDD, 0x00, 0x20, - 0xC0, 0x43, 0x70, 0x47, 0x40, 0x1E, 0x70, 0x47, 0x65, 0x04, 0x00, 0x20, 0xF0, 0xB5, 0x00, 0x22, - 0x13, 0x46, 0x3E, 0x4F, 0x14, 0xE0, 0x21, 0x7C, 0x58, 0x1C, 0x89, 0x1C, 0x48, 0x43, 0x00, 0x21, - 0x07, 0xE0, 0xFD, 0x68, 0x54, 0x00, 0x2C, 0x5B, 0x46, 0x00, 0xBD, 0x68, 0x49, 0x1C, 0x52, 0x1C, - 0xAC, 0x53, 0x36, 0x4C, 0x40, 0x1C, 0x80, 0x3C, 0x24, 0x7C, 0xA1, 0x42, 0xF1, 0xDB, 0x5B, 0x1C, - 0x32, 0x4C, 0x80, 0x3C, 0x60, 0x7C, 0x83, 0x42, 0xE5, 0xDB, 0x21, 0x46, 0x4D, 0x7C, 0x08, 0x7C, - 0x6D, 0x1C, 0x82, 0x1C, 0x55, 0x43, 0x80, 0x1C, 0x00, 0x23, 0x02, 0x26, 0x0C, 0xE0, 0x2B, 0x4C, - 0xBA, 0x68, 0x41, 0x00, 0x80, 0x3C, 0x24, 0x7D, 0x51, 0x5E, 0xA1, 0x42, 0x39, 0x69, 0x01, 0xDD, - 0x0B, 0x54, 0x00, 0xE0, 0x0E, 0x54, 0x40, 0x1C, 0xA8, 0x42, 0xF0, 0xDB, 0x24, 0x48, 0x01, 0x7E, - 0x00, 0x29, 0x42, 0xD0, 0xC1, 0x7D, 0x17, 0xE0, 0x20, 0x4A, 0x61, 0x46, 0x80, 0x3A, 0x14, 0x7C, - 0x82, 0x7D, 0xA4, 0x1C, 0x61, 0x43, 0x89, 0x18, 0x07, 0xE0, 0xBD, 0x68, 0x4C, 0x00, 0x2B, 0x53, - 0x3C, 0x69, 0x52, 0x1C, 0x4D, 0x1C, 0x66, 0x54, 0x29, 0x46, 0x84, 0x7D, 0x05, 0x7E, 0x64, 0x19, - 0x94, 0x42, 0xF2, 0xDC, 0x61, 0x46, 0x49, 0x1C, 0x8C, 0x46, 0xC1, 0x7D, 0x42, 0x7E, 0x8A, 0x18, - 0x62, 0x45, 0xE1, 0xDC, 0x01, 0x7F, 0x00, 0x29, 0x1F, 0xD0, 0xC1, 0x7E, 0x17, 0xE0, 0x0F, 0x4A, - 0x61, 0x46, 0x80, 0x3A, 0x14, 0x7C, 0x82, 0x7E, 0xA4, 0x1C, 0x61, 0x43, 0x89, 0x18, 0x07, 0xE0, - 0xBD, 0x68, 0x4C, 0x00, 0x2B, 0x53, 0x3C, 0x69, 0x52, 0x1C, 0x4D, 0x1C, 0x66, 0x54, 0x29, 0x46, - 0x84, 0x7E, 0x05, 0x7F, 0x64, 0x19, 0x94, 0x42, 0xF2, 0xDC, 0x61, 0x46, 0x49, 0x1C, 0x8C, 0x46, - 0xC1, 0x7E, 0x42, 0x7F, 0x8A, 0x18, 0x62, 0x45, 0xE1, 0xDC, 0xF0, 0xBD, 0xA4, 0x01, 0x00, 0x20, - 0x54, 0x04, 0x00, 0x20, 0xF7, 0xB5, 0x1B, 0x4E, 0x03, 0x46, 0x74, 0x69, 0x94, 0x46, 0x9B, 0x00, - 0x31, 0x46, 0x81, 0xB0, 0x20, 0x39, 0xE2, 0x5C, 0x0A, 0x80, 0x00, 0x92, 0x1A, 0x19, 0x57, 0x78, - 0x4F, 0x80, 0x93, 0x78, 0x8B, 0x80, 0xD2, 0x78, 0x0C, 0x46, 0x60, 0x3C, 0xCA, 0x80, 0x21, 0x7C, - 0x96, 0x46, 0x0A, 0x46, 0x00, 0x20, 0x89, 0x1C, 0x59, 0x43, 0xF1, 0x61, 0x15, 0xE0, 0x00, 0x99, - 0x0C, 0xE0, 0xF4, 0x69, 0xB5, 0x68, 0x64, 0x18, 0x64, 0x00, 0x2C, 0x5F, 0x84, 0x42, 0x04, 0xDD, - 0x20, 0x46, 0x02, 0x9C, 0x21, 0x60, 0x64, 0x46, 0x23, 0x60, 0x49, 0x1C, 0xB9, 0x42, 0xF0, 0xDD, - 0xF1, 0x69, 0x89, 0x18, 0x89, 0x1C, 0x5B, 0x1C, 0xF1, 0x61, 0x73, 0x45, 0xE7, 0xDD, 0x04, 0xB0, - 0xF0, 0xBD, 0x00, 0x00, 0xA4, 0x01, 0x00, 0x20, 0xFF, 0xB5, 0x96, 0x46, 0x11, 0x49, 0x11, 0x4A, - 0x09, 0x7C, 0x80, 0x32, 0x05, 0x46, 0x8C, 0x46, 0x00, 0x20, 0x89, 0x1C, 0x69, 0x43, 0x14, 0x46, - 0xD1, 0x61, 0xA7, 0x68, 0x10, 0xE0, 0x71, 0x46, 0xD6, 0x69, 0x06, 0xE0, 0x74, 0x18, 0x64, 0x00, - 0x3C, 0x5F, 0x84, 0x42, 0x00, 0xDD, 0x20, 0x46, 0x49, 0x1C, 0x99, 0x42, 0xF6, 0xDD, 0x61, 0x46, - 0x71, 0x18, 0x89, 0x1C, 0x6D, 0x1C, 0xD1, 0x61, 0x01, 0x99, 0x8D, 0x42, 0xEB, 0xDD, 0x04, 0xB0, - 0xF0, 0xBD, 0x00, 0x00, 0x24, 0x01, 0x00, 0x20, 0xF0, 0xB5, 0x0D, 0x4F, 0x0B, 0x48, 0x38, 0x61, - 0x0C, 0x4A, 0x00, 0x20, 0x14, 0x46, 0x10, 0x3C, 0x7E, 0x79, 0x0C, 0xE0, 0x41, 0x00, 0x53, 0x5A, - 0x65, 0x5A, 0x5B, 0x19, 0x1B, 0x04, 0x5B, 0x0C, 0x53, 0x52, 0x51, 0x5A, 0x3B, 0x69, 0x99, 0x42, - 0x00, 0xD2, 0x39, 0x61, 0x40, 0x1C, 0xB0, 0x42, 0xF0, 0xDB, 0xF0, 0xBD, 0xFF, 0xFF, 0xFF, 0x7F, - 0x80, 0x03, 0x00, 0x20, 0x48, 0x1A, 0x00, 0x20, 0xF8, 0xB5, 0x00, 0x23, 0x69, 0x4E, 0xDB, 0x43, - 0x00, 0x20, 0x37, 0x46, 0x1C, 0x46, 0x80, 0x3F, 0x04, 0xE0, 0x00, 0x22, 0xF5, 0x6B, 0x41, 0x1C, - 0x2A, 0x54, 0x08, 0x46, 0x63, 0x4A, 0x1B, 0x21, 0x80, 0x3A, 0x51, 0x56, 0x88, 0x42, 0xF4, 0xDB, - 0x00, 0x21, 0x88, 0x00, 0x5F, 0x4E, 0x00, 0x90, 0x37, 0x6C, 0x5F, 0x4D, 0x3D, 0x50, 0xB5, 0x6B, - 0xFF, 0x22, 0x6A, 0x54, 0x5D, 0x4A, 0x48, 0x00, 0x12, 0x5E, 0x52, 0x1C, 0x6D, 0xD0, 0x5A, 0x4A, - 0x00, 0x26, 0x58, 0x4D, 0x3D, 0xE0, 0x59, 0x4C, 0x28, 0x3C, 0x25, 0x5E, 0x6D, 0x1C, 0x04, 0xD0, - 0x25, 0x46, 0x14, 0x35, 0x2D, 0x5E, 0x6D, 0x1C, 0x08, 0xD1, 0x54, 0x4D, 0x53, 0x4E, 0x2D, 0x5A, - 0x25, 0x52, 0x52, 0x4D, 0x14, 0x35, 0x2D, 0x5A, 0x14, 0x3E, 0x35, 0x52, 0x4D, 0x4E, 0x25, 0x5E, - 0x64, 0x46, 0xF6, 0x6A, 0x64, 0x00, 0x36, 0x5F, 0x4C, 0x4F, 0xAD, 0x19, 0xEE, 0x0F, 0x75, 0x19, - 0x3F, 0x5E, 0x6D, 0x10, 0x7D, 0x1B, 0xAE, 0x46, 0x46, 0x4E, 0x48, 0x4D, 0x36, 0x6B, 0x14, 0x3D, - 0x2D, 0x5E, 0x34, 0x5F, 0x45, 0x4F, 0x2C, 0x19, 0xE5, 0x0F, 0x2C, 0x19, 0x14, 0x37, 0x3F, 0x5E, - 0x64, 0x10, 0x3C, 0x1B, 0x75, 0x46, 0x6D, 0x43, 0x64, 0x43, 0x2C, 0x19, 0x94, 0x42, 0x05, 0xDA, - 0x3C, 0x4D, 0x63, 0x46, 0xAE, 0x6B, 0x22, 0x46, 0x73, 0x54, 0xEB, 0x69, 0x39, 0x4D, 0xEE, 0x69, - 0x76, 0x1C, 0xEE, 0x61, 0x37, 0x4D, 0x37, 0x4F, 0xED, 0x69, 0x80, 0x3F, 0x1B, 0x26, 0xBE, 0x57, - 0xAC, 0x46, 0xB5, 0x42, 0xB7, 0xDB, 0x80, 0x37, 0xFD, 0x6B, 0xEE, 0x5C, 0x76, 0x1C, 0xEE, 0x54, - 0x00, 0x9D, 0x3E, 0x6C, 0x72, 0x51, 0x3D, 0x68, 0xAA, 0x42, 0x16, 0xD9, 0x2F, 0x4C, 0x3E, 0x46, - 0x25, 0x5E, 0xF6, 0x6A, 0x5C, 0x00, 0x36, 0x5F, 0x2C, 0x4F, 0xAD, 0x1B, 0x29, 0x4E, 0x14, 0x37, - 0x36, 0x6B, 0x38, 0x5E, 0x34, 0x5F, 0x6D, 0x43, 0x00, 0x1B, 0x40, 0x43, 0x2C, 0x18, 0x94, 0x42, - 0x03, 0xDA, 0x24, 0x4A, 0x00, 0x98, 0x12, 0x6C, 0x14, 0x50, 0x49, 0x1C, 0x0A, 0x29, 0x80, 0xDB, - 0x00, 0x25, 0x38, 0xE0, 0x1F, 0x4E, 0xF0, 0x6B, 0x41, 0x57, 0x01, 0x29, 0x32, 0xDD, 0x00, 0x20, - 0xC0, 0x43, 0x02, 0x29, 0x02, 0xD1, 0x28, 0x46, 0x00, 0xF0, 0x3A, 0xF8, 0x41, 0x1C, 0x29, 0xD1, - 0x18, 0x49, 0x00, 0x23, 0xCA, 0x6B, 0x52, 0x57, 0x21, 0xE0, 0x16, 0x49, 0x8B, 0x6B, 0xC9, 0x69, - 0x5E, 0x56, 0xAE, 0x42, 0x18, 0xD1, 0x46, 0x1C, 0x05, 0xD1, 0x12, 0x4B, 0x08, 0x46, 0x1B, 0x6C, - 0x89, 0x00, 0x5C, 0x58, 0x0F, 0xE0, 0x0F, 0x4E, 0x8F, 0x00, 0x36, 0x6C, 0xF6, 0x59, 0xA6, 0x42, - 0x07, 0xDA, 0xFF, 0x24, 0x0B, 0x49, 0x1C, 0x54, 0xC8, 0x69, 0x09, 0x6C, 0x83, 0x00, 0xCC, 0x58, - 0x01, 0xE0, 0xFF, 0x26, 0x5E, 0x54, 0x52, 0x1E, 0x06, 0x49, 0xCB, 0x69, 0x5B, 0x1C, 0xCB, 0x61, - 0x00, 0x2A, 0xDA, 0xDC, 0x6D, 0x1C, 0x03, 0x48, 0x1B, 0x21, 0x80, 0x38, 0x41, 0x56, 0x8D, 0x42, - 0xC0, 0xDB, 0xF8, 0xBD, 0xA4, 0x01, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0x7F, 0x9A, 0x05, 0x00, 0x20, - 0xF0, 0xB5, 0x00, 0x24, 0xE4, 0x43, 0x89, 0xB0, 0x80, 0x4A, 0x02, 0x94, 0x01, 0x94, 0x92, 0x6B, - 0xA4, 0x46, 0x00, 0x21, 0x08, 0x92, 0x52, 0x56, 0x82, 0x42, 0x01, 0xD1, 0xA4, 0x46, 0x0C, 0x46, - 0x49, 0x1C, 0x0A, 0x29, 0x01, 0xDA, 0x08, 0x9A, 0xF5, 0xE7, 0x78, 0x48, 0x00, 0x21, 0xC3, 0x6B, - 0x07, 0x93, 0xC3, 0x6A, 0x00, 0x6B, 0x9E, 0x46, 0x74, 0x4B, 0x06, 0x90, 0x80, 0x3B, 0x1B, 0x20, - 0x18, 0x56, 0x73, 0x4A, 0x05, 0x90, 0x3D, 0xE0, 0x07, 0x98, 0x40, 0x5C, 0x00, 0x28, 0x37, 0xD1, - 0x60, 0x46, 0x70, 0x4E, 0x40, 0x00, 0x33, 0x5E, 0x5B, 0x1C, 0x04, 0xD0, 0x33, 0x46, 0x14, 0x33, - 0x1B, 0x5E, 0x5B, 0x1C, 0x09, 0xD1, 0x6B, 0x4B, 0x6A, 0x4D, 0x28, 0x33, 0x1B, 0x5A, 0x33, 0x52, - 0x68, 0x4B, 0x3C, 0x33, 0x1B, 0x5A, 0x14, 0x35, 0x2B, 0x52, 0x33, 0x5E, 0x4D, 0x00, 0x2F, 0x46, - 0x76, 0x46, 0x75, 0x5F, 0x5E, 0x19, 0x63, 0x4B, 0xF5, 0x0F, 0x28, 0x33, 0xAD, 0x19, 0x1B, 0x5E, - 0x6D, 0x10, 0x5B, 0x1B, 0x00, 0x93, 0x5F, 0x4B, 0x06, 0x9E, 0x14, 0x33, 0x1B, 0x5E, 0xF5, 0x5F, - 0x5B, 0x19, 0x5C, 0x4D, 0x3C, 0x35, 0x28, 0x5E, 0xDD, 0x0F, 0xEB, 0x18, 0x5B, 0x10, 0xC0, 0x1A, - 0x00, 0x9B, 0x40, 0x43, 0x5B, 0x43, 0x18, 0x18, 0x90, 0x42, 0x01, 0xDA, 0x02, 0x46, 0x02, 0x91, - 0x05, 0x98, 0x49, 0x1C, 0x81, 0x42, 0xBF, 0xDB, 0x51, 0x4E, 0xB2, 0x42, 0x5F, 0xD0, 0x4F, 0x48, - 0x00, 0x68, 0x04, 0x90, 0x82, 0x42, 0x15, 0xD9, 0x60, 0x46, 0x41, 0x00, 0x4D, 0x48, 0x75, 0x46, - 0x28, 0x30, 0x43, 0x5E, 0x02, 0x98, 0x40, 0x00, 0x2D, 0x5E, 0x5B, 0x1B, 0x49, 0x4D, 0x5B, 0x43, - 0x3C, 0x35, 0x69, 0x5E, 0x06, 0x9D, 0x28, 0x5E, 0x08, 0x1A, 0x40, 0x43, 0x18, 0x18, 0x90, 0x42, - 0x00, 0xDA, 0x02, 0x46, 0x42, 0x4B, 0x00, 0x21, 0x3B, 0xE0, 0x07, 0x98, 0x40, 0x5C, 0x00, 0x28, - 0x36, 0xD1, 0x40, 0x4F, 0x60, 0x00, 0x3E, 0x5E, 0x76, 0x1C, 0x04, 0xD0, 0x3E, 0x46, 0x14, 0x36, - 0x36, 0x5E, 0x76, 0x1C, 0x08, 0xD1, 0x3B, 0x4E, 0x28, 0x36, 0x36, 0x5A, 0x3E, 0x52, 0x39, 0x4E, - 0x3C, 0x36, 0x35, 0x5A, 0x28, 0x3E, 0x35, 0x52, 0x3D, 0x5E, 0x4E, 0x00, 0x77, 0x46, 0x03, 0x96, - 0xBE, 0x5F, 0xAF, 0x19, 0x33, 0x4D, 0xFE, 0x0F, 0x28, 0x35, 0xF6, 0x19, 0x2D, 0x5E, 0x76, 0x10, - 0xAD, 0x1B, 0x00, 0x95, 0x2F, 0x4D, 0x06, 0x9F, 0x03, 0x9E, 0x14, 0x35, 0x2D, 0x5E, 0xBE, 0x5F, - 0xAD, 0x19, 0x2C, 0x4E, 0x3C, 0x36, 0x30, 0x5E, 0xEE, 0x0F, 0x75, 0x19, 0x6D, 0x10, 0x40, 0x1B, - 0x00, 0x9D, 0x40, 0x43, 0x6D, 0x43, 0x28, 0x18, 0x98, 0x42, 0x01, 0xDA, 0x03, 0x46, 0x01, 0x91, - 0x49, 0x1C, 0x05, 0x98, 0x81, 0x42, 0xC0, 0xDB, 0x21, 0x48, 0x83, 0x42, 0x03, 0xD1, 0x00, 0x20, - 0xC0, 0x43, 0x09, 0xB0, 0xF0, 0xBD, 0x04, 0x98, 0x1C, 0x4F, 0x83, 0x42, 0x14, 0xD9, 0x1D, 0x48, - 0x66, 0x00, 0x28, 0x30, 0x81, 0x5F, 0x01, 0x98, 0x75, 0x46, 0x40, 0x00, 0x2D, 0x5E, 0x49, 0x1B, - 0x18, 0x4D, 0x49, 0x43, 0x3C, 0x35, 0xAD, 0x5F, 0x06, 0x9E, 0x30, 0x5E, 0x28, 0x1A, 0x40, 0x43, - 0x08, 0x18, 0x98, 0x42, 0x00, 0xDA, 0x03, 0x46, 0x60, 0x46, 0x39, 0x6C, 0x80, 0x00, 0x3E, 0x46, - 0x0F, 0x58, 0xA5, 0x00, 0x49, 0x59, 0xFF, 0x18, 0x89, 0x18, 0x8F, 0x42, 0x0A, 0xDD, 0x08, 0x9C, - 0x63, 0x46, 0x02, 0x99, 0xE1, 0x54, 0xF3, 0x6B, 0x02, 0x9C, 0x01, 0x21, 0x19, 0x55, 0x31, 0x6C, - 0x0A, 0x50, 0x08, 0xE0, 0x08, 0x98, 0x01, 0x99, 0x01, 0x55, 0xF1, 0x6B, 0x01, 0x9A, 0x01, 0x20, - 0x88, 0x54, 0x30, 0x6C, 0x43, 0x51, 0x00, 0x20, 0xC3, 0xE7, 0x00, 0x00, 0xA4, 0x01, 0x00, 0x20, - 0xFF, 0xFF, 0xFF, 0x7F, 0x72, 0x05, 0x00, 0x20, 0x70, 0xB5, 0x00, 0x24, 0x12, 0x48, 0x80, 0x69, - 0x00, 0x05, 0x05, 0x0F, 0x10, 0x48, 0x40, 0x69, 0x80, 0x01, 0x80, 0x0F, 0x07, 0xD1, 0xFE, 0xF7, - 0x95, 0xF9, 0x06, 0x46, 0x69, 0x1C, 0xFB, 0xF7, 0xF9, 0xFD, 0x04, 0x46, 0x12, 0xE0, 0x0A, 0x48, - 0x40, 0x69, 0x80, 0x01, 0x80, 0x0F, 0x01, 0x28, 0x07, 0xD1, 0xFE, 0xF7, 0x8B, 0xF9, 0x06, 0x46, - 0x69, 0x1C, 0xFB, 0xF7, 0xEB, 0xFD, 0x04, 0x46, 0x04, 0xE0, 0x69, 0x1C, 0x03, 0x48, 0xFB, 0xF7, - 0xE5, 0xFD, 0x04, 0x46, 0x20, 0x46, 0x70, 0xBD, 0x00, 0x02, 0x00, 0x50, 0x00, 0x80, 0x51, 0x01, - 0x70, 0xB5, 0x86, 0xB0, 0x00, 0x24, 0x4A, 0x4D, 0x08, 0xE0, 0xFD, 0xF7, 0x07, 0xFD, 0x64, 0x1C, - 0xA4, 0xB2, 0xAC, 0x42, 0x02, 0xD9, 0x01, 0x20, 0x06, 0xB0, 0x70, 0xBD, 0xFF, 0xF7, 0x34, 0xFC, - 0x35, 0x28, 0xF2, 0xD1, 0x00, 0x20, 0x43, 0x4D, 0x04, 0x46, 0x41, 0x1C, 0xAA, 0x6B, 0x89, 0xB2, - 0x14, 0x54, 0x08, 0x46, 0x10, 0x29, 0xF8, 0xD3, 0x68, 0x6B, 0x03, 0x22, 0xA9, 0x6B, 0x02, 0xAB, - 0x07, 0xC3, 0x3D, 0x48, 0x00, 0x21, 0x00, 0x78, 0x00, 0x91, 0x42, 0x00, 0x01, 0x92, 0x0A, 0x46, - 0x3A, 0x49, 0xA0, 0x20, 0x00, 0x23, 0x00, 0xF0, 0x2B, 0xFA, 0x01, 0x20, 0xA9, 0x6B, 0xFF, 0xF7, - 0x59, 0xFB, 0x02, 0xF0, 0x0D, 0xFC, 0x00, 0x28, 0x01, 0xD0, 0x02, 0xF0, 0xEF, 0xFE, 0x34, 0x4E, - 0x30, 0x7C, 0x00, 0x09, 0x22, 0xD0, 0x68, 0x6B, 0x03, 0x22, 0xA9, 0x6B, 0x02, 0xAB, 0x07, 0xC3, - 0x14, 0x22, 0x00, 0x21, 0x01, 0x92, 0x00, 0x91, 0x0A, 0x46, 0x2E, 0x49, 0xA0, 0x20, 0x00, 0x23, - 0x00, 0xF0, 0x0E, 0xFA, 0x30, 0x46, 0x40, 0x30, 0x81, 0x79, 0x2B, 0x4A, 0x00, 0x29, 0x41, 0x79, - 0x02, 0xD1, 0x4B, 0x00, 0x69, 0x6B, 0x01, 0xE0, 0x4B, 0x00, 0xA9, 0x6B, 0x40, 0x79, 0xCB, 0x5C, - 0x40, 0x00, 0x40, 0x18, 0x40, 0x78, 0x1B, 0x02, 0x18, 0x18, 0x10, 0x80, 0x6C, 0x76, 0xF1, 0x7A, - 0x22, 0x48, 0xC9, 0x09, 0x01, 0xD0, 0x04, 0x78, 0x01, 0xE0, 0x00, 0x78, 0x44, 0x00, 0x68, 0x6B, - 0x03, 0x22, 0xA9, 0x6B, 0x02, 0xAB, 0x07, 0xC3, 0x00, 0x21, 0x71, 0x26, 0x0A, 0x46, 0x36, 0x01, - 0x00, 0x91, 0x01, 0x94, 0x31, 0x46, 0xA0, 0x20, 0x00, 0x23, 0x00, 0xF0, 0xE1, 0xF9, 0xA8, 0x6B, - 0x02, 0x22, 0x01, 0x19, 0x68, 0x6B, 0x02, 0xAB, 0x00, 0x19, 0x07, 0xC3, 0x14, 0x48, 0x00, 0x21, - 0x00, 0x1B, 0x82, 0xB2, 0xA0, 0x19, 0x01, 0x92, 0x00, 0x91, 0x81, 0xB2, 0x00, 0x22, 0xA0, 0x20, - 0x13, 0x46, 0x00, 0xF0, 0xCD, 0xF9, 0x68, 0x6B, 0x00, 0x5D, 0xFF, 0x28, 0x03, 0xD0, 0xA8, 0x6B, - 0x00, 0x5D, 0xFF, 0x28, 0x01, 0xD1, 0x02, 0x20, 0x76, 0xE7, 0x00, 0x20, 0x74, 0xE7, 0x00, 0x00, - 0x88, 0x13, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x20, 0x85, 0x03, 0x00, 0x20, 0xD0, 0x4F, 0x00, 0x00, - 0x14, 0x04, 0x00, 0x20, 0xEC, 0x05, 0x00, 0x00, 0x9A, 0x01, 0x00, 0x20, 0x34, 0x01, 0x00, 0x20, - 0x31, 0x02, 0x00, 0x00, 0x11, 0xB5, 0x83, 0xB0, 0x5A, 0x20, 0x03, 0xAA, 0x00, 0x92, 0x02, 0x90, - 0x01, 0x22, 0x12, 0x49, 0xA0, 0x20, 0x03, 0xAB, 0x00, 0xF0, 0x76, 0xFC, 0xFD, 0xF7, 0x42, 0xFC, - 0x0F, 0x49, 0xFF, 0x20, 0x88, 0x70, 0x02, 0xAA, 0x00, 0x92, 0x01, 0x22, 0x0D, 0x49, 0xA0, 0x20, - 0x02, 0xAB, 0x00, 0xF0, 0x69, 0xFC, 0x00, 0x24, 0xFD, 0xF7, 0x48, 0xFC, 0x64, 0x1C, 0xE4, 0xB2, - 0x0F, 0x2C, 0xF9, 0xD3, 0xFF, 0xF7, 0x78, 0xFB, 0x6B, 0x46, 0x19, 0x7A, 0x88, 0x42, 0x02, 0xD0, - 0x00, 0x20, 0x04, 0xB0, 0x10, 0xBD, 0x01, 0x20, 0xFB, 0xE7, 0x00, 0x00, 0x22, 0x15, 0x00, 0x00, - 0x1C, 0x00, 0x00, 0x20, 0x05, 0x10, 0x00, 0x00, 0x10, 0xB5, 0x22, 0x48, 0x00, 0x68, 0x00, 0x28, - 0x3B, 0xD0, 0x20, 0x48, 0x00, 0x1F, 0x00, 0x68, 0x00, 0x28, 0x09, 0xD1, 0x00, 0x22, 0x1D, 0x48, - 0x01, 0x68, 0x10, 0x46, 0xFE, 0xF7, 0xCC, 0xFD, 0x00, 0x20, 0x1A, 0x49, 0x08, 0x60, 0x2F, 0xE0, - 0x18, 0x48, 0x00, 0x1F, 0x00, 0x68, 0x08, 0x28, 0x03, 0xD2, 0x16, 0x48, 0x00, 0x1F, 0x00, 0x68, - 0x00, 0xE0, 0x08, 0x20, 0x04, 0x46, 0x22, 0x46, 0x12, 0x48, 0x01, 0x68, 0x00, 0x20, 0xFE, 0xF7, - 0xB7, 0xFD, 0x10, 0x48, 0x01, 0x68, 0x08, 0x19, 0x0E, 0x49, 0x08, 0x60, 0x08, 0x1F, 0x01, 0x68, - 0x08, 0x1B, 0x0C, 0x49, 0x09, 0x1F, 0x08, 0x60, 0x08, 0x46, 0x00, 0x68, 0x00, 0x28, 0x0F, 0xD1, - 0x08, 0x2C, 0x02, 0xD2, 0x09, 0x1D, 0x08, 0x60, 0x0A, 0xE0, 0x06, 0x48, 0x08, 0x38, 0x00, 0x78, - 0x00, 0x28, 0x05, 0xD1, 0x03, 0x49, 0x08, 0x60, 0x02, 0xE0, 0x00, 0x20, 0x02, 0x49, 0x48, 0x63, - 0x10, 0xBD, 0x00, 0x00, 0x7C, 0x03, 0x00, 0x20, 0x00, 0x00, 0x06, 0x40, 0x00, 0x20, 0x03, 0x49, - 0x08, 0x60, 0x09, 0x1D, 0x08, 0x60, 0x08, 0x39, 0x08, 0x70, 0x70, 0x47, 0x78, 0x03, 0x00, 0x20, - 0x10, 0xB5, 0x39, 0x48, 0xC4, 0x79, 0x24, 0x02, 0x80, 0x79, 0x00, 0x19, 0x84, 0xB2, 0x00, 0x20, - 0x36, 0x49, 0x08, 0x70, 0x34, 0x48, 0xC0, 0x78, 0x03, 0x28, 0x2C, 0xD0, 0x04, 0xDC, 0x01, 0x28, - 0x07, 0xD0, 0x02, 0x28, 0x5B, 0xD1, 0x0E, 0xE0, 0x21, 0x28, 0x13, 0xD0, 0x22, 0x28, 0x56, 0xD1, - 0x18, 0xE0, 0x22, 0x46, 0x12, 0x21, 0x2E, 0x48, 0x08, 0x23, 0x00, 0xF0, 0x95, 0xF8, 0x00, 0x20, - 0x2C, 0x49, 0x48, 0x63, 0x4E, 0xE0, 0x2C, 0x48, 0x81, 0x78, 0x22, 0x46, 0x08, 0x23, 0x00, 0xF0, - 0x8B, 0xF8, 0x47, 0xE0, 0x22, 0x46, 0x09, 0x21, 0x28, 0x48, 0x00, 0x68, 0x08, 0x23, 0x00, 0xF0, - 0x83, 0xF8, 0x3F, 0xE0, 0x22, 0x46, 0x26, 0x48, 0x01, 0x68, 0x26, 0x48, 0x00, 0x68, 0x08, 0x23, - 0x00, 0xF0, 0x7A, 0xF8, 0x36, 0xE0, 0x1C, 0x48, 0x80, 0x78, 0x00, 0x28, 0x06, 0xD1, 0x22, 0x46, - 0x04, 0x21, 0x21, 0x48, 0x08, 0x23, 0x00, 0xF0, 0x6F, 0xF8, 0x27, 0xE0, 0x16, 0x48, 0x80, 0x78, - 0x01, 0x28, 0x04, 0xD0, 0x02, 0x28, 0x0C, 0xD0, 0x03, 0x28, 0x1B, 0xD1, 0x13, 0xE0, 0x1B, 0x4A, - 0x52, 0x68, 0x11, 0x78, 0x19, 0x4A, 0x50, 0x68, 0x22, 0x46, 0x08, 0x23, 0x00, 0xF0, 0x5C, 0xF8, - 0x13, 0xE0, 0x16, 0x4A, 0x92, 0x68, 0x11, 0x78, 0x14, 0x4A, 0x90, 0x68, 0x22, 0x46, 0x08, 0x23, - 0x00, 0xF0, 0x52, 0xF8, 0x09, 0xE0, 0x12, 0x48, 0x01, 0x78, 0x22, 0x46, 0x08, 0x23, 0x00, 0xF0, - 0x4B, 0xF8, 0x02, 0xE0, 0xFE, 0xF7, 0xD2, 0xFB, 0x00, 0xBF, 0x00, 0xBF, 0x02, 0xE0, 0xFE, 0xF7, - 0xCD, 0xFB, 0x00, 0xBF, 0x00, 0xBF, 0x10, 0xBD, 0x64, 0x03, 0x00, 0x20, 0x74, 0x03, 0x00, 0x20, - 0xA0, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xB4, 0xBC, 0x00, 0x00, 0x40, 0x03, 0x00, 0x20, - 0x3C, 0x03, 0x00, 0x20, 0x38, 0x03, 0x00, 0x20, 0xD8, 0xBC, 0x00, 0x00, 0x98, 0x19, 0x00, 0x20, - 0x74, 0xBE, 0x00, 0x00, 0x00, 0xB5, 0x02, 0x22, 0x03, 0x49, 0x00, 0x20, 0xFE, 0xF7, 0xF8, 0xFC, - 0x01, 0x20, 0x02, 0x49, 0x08, 0x70, 0x00, 0xBD, 0x30, 0x03, 0x00, 0x20, 0x32, 0x03, 0x00, 0x20, - 0x04, 0x48, 0x80, 0x6A, 0x80, 0x21, 0x08, 0x43, 0x02, 0x49, 0x88, 0x62, 0x00, 0x20, 0x48, 0x62, - 0x70, 0x47, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0x00, 0xBF, 0xFE, 0xE7, 0x00, 0xBF, 0xFE, 0xE7, - 0x01, 0x46, 0x04, 0x48, 0x40, 0x79, 0x88, 0x42, 0x01, 0xD1, 0x01, 0x20, 0x70, 0x47, 0x00, 0x20, - 0xFC, 0xE7, 0x00, 0x00, 0xB4, 0xBC, 0x00, 0x00, 0xF0, 0xB5, 0x04, 0x46, 0x0D, 0x46, 0x16, 0x46, - 0x1F, 0x46, 0x19, 0x48, 0x06, 0x60, 0xAE, 0x42, 0x04, 0xD9, 0x05, 0x60, 0x01, 0x20, 0x16, 0x49, - 0x09, 0x1F, 0x08, 0x70, 0x14, 0x48, 0x00, 0x1D, 0x04, 0x60, 0x00, 0x1F, 0x00, 0x68, 0xB8, 0x42, - 0x0D, 0xD2, 0x11, 0x48, 0x02, 0x68, 0x00, 0x1D, 0x01, 0x68, 0x00, 0x20, 0xFE, 0xF7, 0xB8, 0xFC, - 0x00, 0x20, 0x0D, 0x49, 0x09, 0x1D, 0x08, 0x60, 0x09, 0x1F, 0x08, 0x60, 0x12, 0xE0, 0x3A, 0x46, - 0x09, 0x48, 0x00, 0x1D, 0x01, 0x68, 0x00, 0x20, 0xFE, 0xF7, 0xAA, 0xFC, 0x06, 0x48, 0x00, 0x1D, - 0x00, 0x68, 0xC0, 0x19, 0x04, 0x49, 0x09, 0x1D, 0x08, 0x60, 0x08, 0x1F, 0x00, 0x68, 0xC0, 0x1B, - 0x09, 0x1F, 0x08, 0x60, 0xF0, 0xBD, 0x00, 0x00, 0x78, 0x03, 0x00, 0x20, 0x70, 0x47, 0x10, 0xB5, - 0x01, 0x20, 0xFE, 0xF7, 0x6D, 0xFD, 0xFF, 0xF7, 0xF9, 0xFF, 0x10, 0xBD, 0x10, 0xB5, 0x11, 0x48, - 0x01, 0x7E, 0x01, 0x29, 0x07, 0xD1, 0xC1, 0x78, 0x01, 0x29, 0xFC, 0xD0, 0x01, 0x21, 0x41, 0x74, - 0x04, 0xF0, 0x78, 0xFE, 0x13, 0xE0, 0x01, 0x79, 0x00, 0x29, 0x02, 0xD1, 0x00, 0xF0, 0x72, 0xFD, - 0x10, 0xBD, 0x81, 0x7A, 0x02, 0x29, 0xFB, 0xD3, 0x81, 0x7A, 0x49, 0x1E, 0x81, 0x72, 0x81, 0x7A, - 0x02, 0x29, 0x01, 0xD2, 0x00, 0x21, 0x81, 0x72, 0xC0, 0x78, 0x00, 0x28, 0xF0, 0xD1, 0x03, 0xF0, - 0xD1, 0xFC, 0x10, 0xBD, 0x1C, 0x00, 0x00, 0x20, 0x00, 0x20, 0x01, 0xE0, 0x41, 0x1C, 0xC8, 0xB2, - 0x03, 0x28, 0xFB, 0xDB, 0x70, 0x47, 0x00, 0xBF, 0x00, 0xBF, 0x00, 0xBF, 0x00, 0xBF, 0x70, 0x47, - 0xFF, 0xB5, 0x81, 0xB0, 0x0B, 0xAC, 0x70, 0xCC, 0x17, 0x46, 0x00, 0xF0, 0x15, 0xFA, 0x01, 0x98, - 0x40, 0x08, 0x40, 0x00, 0x01, 0x46, 0x00, 0xF0, 0x41, 0xF9, 0x03, 0x28, 0x2C, 0xD1, 0x02, 0x98, - 0x00, 0x0A, 0x01, 0x46, 0x00, 0xF0, 0x3A, 0xF9, 0x03, 0x28, 0x25, 0xD1, 0x02, 0x98, 0xC0, 0xB2, - 0x01, 0x46, 0x00, 0xF0, 0x33, 0xF9, 0x03, 0x28, 0x1E, 0xD1, 0x0F, 0xE0, 0x0A, 0x98, 0x01, 0x78, - 0x04, 0x98, 0x00, 0x78, 0x00, 0xF0, 0x2A, 0xF9, 0x03, 0x28, 0x15, 0xD1, 0x04, 0x98, 0x40, 0x1C, - 0x04, 0x90, 0x0A, 0x98, 0x40, 0x1C, 0x7F, 0x1E, 0xBF, 0xB2, 0x0A, 0x90, 0x00, 0x2F, 0xED, 0xD1, - 0x00, 0x2C, 0x5F, 0xD0, 0x00, 0xF0, 0xE8, 0xF9, 0x01, 0x98, 0x01, 0x27, 0x38, 0x43, 0x01, 0x46, - 0x00, 0xF0, 0x14, 0xF9, 0x03, 0x28, 0x04, 0xD0, 0x00, 0xF0, 0x3C, 0xFA, 0x00, 0x20, 0x05, 0xB0, - 0xF0, 0xBD, 0x0E, 0x98, 0x02, 0x28, 0x46, 0xD1, 0x28, 0x4F, 0x1F, 0xE0, 0x00, 0x22, 0x31, 0x46, - 0x28, 0x46, 0x00, 0xF0, 0x4D, 0xF8, 0x28, 0x78, 0xFF, 0x28, 0x03, 0xD1, 0x78, 0x7E, 0x01, 0x21, - 0x08, 0x43, 0x78, 0x76, 0x30, 0x78, 0xFF, 0x28, 0x03, 0xD1, 0x78, 0x7E, 0x02, 0x21, 0x08, 0x43, - 0x78, 0x76, 0x64, 0x1E, 0x78, 0x7E, 0x6D, 0x1C, 0x76, 0x1C, 0xA4, 0xB2, 0x03, 0x28, 0x05, 0xD1, - 0x01, 0x22, 0x31, 0x46, 0x28, 0x46, 0x00, 0xF0, 0x33, 0xF8, 0x17, 0xE0, 0x01, 0x2C, 0xDD, 0xD8, - 0x01, 0x22, 0x31, 0x46, 0x28, 0x46, 0x00, 0xF0, 0x2B, 0xF8, 0x28, 0x78, 0xFF, 0x28, 0x03, 0xD1, - 0x78, 0x7E, 0x01, 0x21, 0x08, 0x43, 0x78, 0x76, 0x30, 0x78, 0xFF, 0x28, 0x03, 0xD1, 0x79, 0x7E, - 0x02, 0x20, 0x01, 0x43, 0x79, 0x76, 0x78, 0x7E, 0x03, 0x28, 0x13, 0xD1, 0x00, 0xF0, 0xFA, 0xF9, - 0x04, 0x20, 0xBC, 0xE7, 0x00, 0x22, 0x31, 0x46, 0x28, 0x46, 0x00, 0xF0, 0x11, 0xF8, 0x6D, 0x1C, - 0x76, 0x1C, 0x64, 0x1E, 0xA4, 0xB2, 0x01, 0x2C, 0xF4, 0xD8, 0x01, 0x22, 0x31, 0x46, 0x28, 0x46, - 0x00, 0xF0, 0x06, 0xF8, 0x00, 0xF0, 0xE6, 0xF9, 0x01, 0x20, 0xA8, 0xE7, 0x1C, 0x00, 0x00, 0x20, - 0x70, 0xB5, 0x04, 0x46, 0x0D, 0x46, 0x16, 0x46, 0x36, 0x48, 0x00, 0x68, 0x03, 0x21, 0x09, 0x05, - 0x88, 0x43, 0x34, 0x49, 0x08, 0x60, 0x08, 0x46, 0x00, 0x68, 0x03, 0x21, 0x09, 0x06, 0x88, 0x43, - 0x30, 0x49, 0x08, 0x60, 0x29, 0x46, 0x20, 0x46, 0xFB, 0xF7, 0x5C, 0xFA, 0x2D, 0x48, 0x00, 0x68, - 0x03, 0x21, 0x09, 0x05, 0x88, 0x43, 0x2B, 0x49, 0x08, 0x60, 0x08, 0x46, 0x00, 0x68, 0x01, 0x21, - 0x49, 0x05, 0x08, 0x43, 0x27, 0x49, 0x08, 0x60, 0x08, 0x46, 0x00, 0x68, 0x03, 0x21, 0x09, 0x06, - 0x88, 0x43, 0x24, 0x49, 0x08, 0x60, 0x08, 0x46, 0x00, 0x68, 0x89, 0x04, 0x08, 0x43, 0x21, 0x49, - 0x08, 0x60, 0x00, 0x2E, 0x0E, 0xD1, 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0x89, 0x02, 0x88, 0x43, - 0x1C, 0x49, 0x88, 0x60, 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0x09, 0x03, 0x88, 0x43, 0x19, 0x49, - 0x88, 0x60, 0x0E, 0xE0, 0x17, 0x48, 0x80, 0x68, 0x01, 0x21, 0x89, 0x02, 0x08, 0x43, 0x15, 0x49, - 0x88, 0x60, 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0x09, 0x03, 0x08, 0x43, 0x11, 0x49, 0x88, 0x60, - 0x00, 0xBF, 0x00, 0xBF, 0x0F, 0x48, 0x80, 0x68, 0x01, 0x21, 0x49, 0x02, 0x08, 0x43, 0x0D, 0x49, - 0x88, 0x60, 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0xC9, 0x02, 0x08, 0x43, 0x09, 0x49, 0x88, 0x60, - 0xFF, 0xF7, 0xFA, 0xFE, 0x07, 0x48, 0x80, 0x68, 0x01, 0x21, 0x49, 0x02, 0x88, 0x43, 0x05, 0x49, - 0x88, 0x60, 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0xC9, 0x02, 0x88, 0x43, 0x01, 0x49, 0x88, 0x60, - 0x70, 0xBD, 0x00, 0x00, 0x80, 0x40, 0x00, 0x50, 0xFF, 0xB5, 0x81, 0xB0, 0x0F, 0x46, 0x14, 0x46, - 0x1D, 0x46, 0x0A, 0x9E, 0x00, 0xF0, 0x08, 0xF9, 0x01, 0x98, 0x40, 0x08, 0x40, 0x00, 0x01, 0x46, - 0x00, 0xF0, 0x34, 0xF8, 0xC0, 0x07, 0x17, 0xD0, 0x38, 0x0A, 0x01, 0x46, 0x00, 0xF0, 0x2E, 0xF8, - 0xC0, 0x07, 0x11, 0xD0, 0xF8, 0xB2, 0x01, 0x46, 0x00, 0xF0, 0x28, 0xF8, 0xC0, 0x07, 0x0B, 0xD0, - 0x00, 0x2C, 0x1E, 0xD0, 0x00, 0xF0, 0xF0, 0xF8, 0x01, 0x98, 0x01, 0x21, 0x08, 0x43, 0x01, 0x46, - 0x00, 0xF0, 0x1C, 0xF8, 0xC0, 0x07, 0x0D, 0xD1, 0x00, 0xF0, 0x44, 0xF9, 0x00, 0x20, 0x05, 0xB0, - 0xF0, 0xBD, 0x00, 0x22, 0x31, 0x46, 0x28, 0x46, 0xFF, 0xF7, 0x5A, 0xFF, 0x6D, 0x1C, 0x76, 0x1C, - 0x64, 0x1E, 0xA4, 0xB2, 0x01, 0x2C, 0xF4, 0xD8, 0x01, 0x22, 0x31, 0x46, 0x28, 0x46, 0xFF, 0xF7, - 0x4F, 0xFF, 0x00, 0xF0, 0x2F, 0xF9, 0x01, 0x20, 0xE9, 0xE7, 0x00, 0x00, 0xF8, 0xB5, 0x04, 0x46, - 0x0D, 0x46, 0x38, 0x48, 0x00, 0x68, 0x03, 0x21, 0x09, 0x05, 0x88, 0x43, 0x35, 0x49, 0x08, 0x60, - 0x08, 0x46, 0x00, 0x68, 0x01, 0x21, 0x49, 0x05, 0x08, 0x43, 0x32, 0x49, 0x08, 0x60, 0x08, 0x46, - 0x00, 0x68, 0x03, 0x21, 0x09, 0x06, 0x88, 0x43, 0x2E, 0x49, 0x08, 0x60, 0x08, 0x46, 0x00, 0x68, - 0x89, 0x04, 0x08, 0x43, 0x2B, 0x49, 0x08, 0x60, 0x29, 0x46, 0x20, 0x46, 0xFB, 0xF7, 0x44, 0xF9, - 0xFF, 0xF7, 0x89, 0xFE, 0x27, 0x48, 0x00, 0x68, 0x03, 0x21, 0x09, 0x05, 0x88, 0x43, 0x25, 0x49, - 0x08, 0x60, 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0xC9, 0x02, 0x88, 0x43, 0x21, 0x49, 0x88, 0x60, - 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0x49, 0x02, 0x08, 0x43, 0x1E, 0x49, 0x88, 0x60, 0xFF, 0xF7, - 0x72, 0xFE, 0x1C, 0x48, 0x00, 0x68, 0x03, 0x21, 0x09, 0x06, 0x88, 0x43, 0x19, 0x49, 0x08, 0x60, - 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0xC9, 0x02, 0x08, 0x43, 0x16, 0x49, 0x88, 0x60, 0x08, 0x46, - 0x00, 0x69, 0x40, 0x05, 0xC0, 0x0F, 0x01, 0x21, 0x48, 0x40, 0x06, 0x46, 0x11, 0x48, 0x80, 0x68, - 0x49, 0x02, 0x88, 0x43, 0x0F, 0x49, 0x88, 0x60, 0xFF, 0xF7, 0x55, 0xFE, 0x0D, 0x48, 0x00, 0x69, - 0xC0, 0x04, 0xC0, 0x0F, 0x01, 0x21, 0x48, 0x40, 0x07, 0x46, 0x0A, 0x48, 0x80, 0x68, 0xC9, 0x02, - 0x88, 0x43, 0x08, 0x49, 0x88, 0x60, 0xBE, 0x42, 0x05, 0xD0, 0x00, 0x2E, 0x01, 0xD0, 0x01, 0x20, - 0xF8, 0xBD, 0x02, 0x20, 0xFC, 0xE7, 0x00, 0x2E, 0x01, 0xD0, 0x03, 0x20, 0xF8, 0xE7, 0x00, 0x20, - 0xF6, 0xE7, 0x00, 0x00, 0x80, 0x40, 0x00, 0x50, 0xF8, 0xB5, 0x00, 0x24, 0x00, 0xF0, 0x30, 0xFB, - 0x23, 0x48, 0x01, 0x7C, 0x09, 0x09, 0x2C, 0xD0, 0x02, 0x7C, 0x22, 0x49, 0xD3, 0x06, 0x22, 0x4A, - 0x02, 0xD5, 0x15, 0x68, 0x0B, 0x88, 0x2B, 0x80, 0x03, 0x7C, 0x20, 0x4E, 0x9B, 0x06, 0x06, 0xD5, - 0x33, 0x78, 0x17, 0x68, 0x5B, 0x00, 0xDB, 0x19, 0x0D, 0x88, 0x20, 0x3B, 0xDD, 0x83, 0x03, 0x7C, - 0x5B, 0x06, 0x07, 0xD5, 0x1A, 0x4B, 0x17, 0x68, 0x1B, 0x78, 0x0D, 0x88, 0x9B, 0x01, 0xDB, 0x19, - 0x40, 0x3B, 0x1D, 0x80, 0x00, 0x7C, 0x00, 0x06, 0x0B, 0xD5, 0x15, 0x48, 0x33, 0x78, 0x00, 0x78, - 0x12, 0x68, 0x40, 0x01, 0x20, 0x38, 0xC0, 0x18, 0x40, 0x00, 0x80, 0x18, 0x09, 0x88, 0x20, 0x38, - 0xC1, 0x83, 0x10, 0x4D, 0x01, 0x26, 0x2E, 0x71, 0x03, 0xF0, 0xC4, 0xFA, 0x7D, 0x27, 0xFF, 0x00, - 0x08, 0xE0, 0x6E, 0x74, 0xE8, 0x78, 0x00, 0x28, 0x02, 0xD1, 0xFD, 0xF7, 0xC1, 0xF8, 0x64, 0x1C, - 0xBC, 0x42, 0x02, 0xDC, 0x28, 0x79, 0x00, 0x28, 0xF3, 0xD1, 0x02, 0xF0, 0xC9, 0xFD, 0xF8, 0xBD, - 0x14, 0x04, 0x00, 0x20, 0x9E, 0x01, 0x00, 0x20, 0xB0, 0x01, 0x00, 0x20, 0x34, 0x01, 0x00, 0x20, - 0x35, 0x01, 0x00, 0x20, 0x1C, 0x00, 0x00, 0x20, 0x00, 0xB5, 0x2D, 0x48, 0x00, 0x68, 0x03, 0x21, - 0x09, 0x05, 0x88, 0x43, 0x2A, 0x49, 0x08, 0x60, 0x08, 0x46, 0x00, 0x68, 0x01, 0x21, 0x49, 0x05, - 0x08, 0x43, 0x27, 0x49, 0x08, 0x60, 0x08, 0x46, 0x00, 0x68, 0x03, 0x21, 0x09, 0x06, 0x88, 0x43, - 0x23, 0x49, 0x08, 0x60, 0x08, 0x46, 0x00, 0x68, 0x89, 0x04, 0x08, 0x43, 0x20, 0x49, 0x08, 0x60, - 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0x89, 0x02, 0x08, 0x43, 0x1D, 0x49, 0x88, 0x60, 0x08, 0x46, - 0x80, 0x68, 0x01, 0x21, 0x09, 0x03, 0x08, 0x43, 0x19, 0x49, 0x88, 0x60, 0xFF, 0xF7, 0xAC, 0xFD, - 0x17, 0x48, 0x80, 0x68, 0x01, 0x21, 0x49, 0x02, 0x08, 0x43, 0x15, 0x49, 0x88, 0x60, 0x08, 0x46, - 0x80, 0x68, 0x01, 0x21, 0xC9, 0x02, 0x08, 0x43, 0x11, 0x49, 0x88, 0x60, 0xFF, 0xF7, 0x9C, 0xFD, - 0x0F, 0x48, 0x80, 0x68, 0x01, 0x21, 0x89, 0x02, 0x88, 0x43, 0x0D, 0x49, 0x88, 0x60, 0x08, 0x46, - 0x80, 0x68, 0x01, 0x21, 0x09, 0x03, 0x88, 0x43, 0x09, 0x49, 0x88, 0x60, 0xFF, 0xF7, 0x8C, 0xFD, - 0x07, 0x48, 0x80, 0x68, 0x01, 0x21, 0x49, 0x02, 0x88, 0x43, 0x05, 0x49, 0x88, 0x60, 0x08, 0x46, - 0x80, 0x68, 0x01, 0x21, 0xC9, 0x02, 0x88, 0x43, 0x01, 0x49, 0x88, 0x60, 0x00, 0xBD, 0x00, 0x00, - 0x80, 0x40, 0x00, 0x50, 0x00, 0xB5, 0x2B, 0x48, 0x80, 0x68, 0x01, 0x21, 0x49, 0x02, 0x88, 0x43, - 0x28, 0x49, 0x88, 0x60, 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0xC9, 0x02, 0x88, 0x43, 0x25, 0x49, - 0x88, 0x60, 0x08, 0x46, 0x00, 0x68, 0x03, 0x21, 0x09, 0x05, 0x88, 0x43, 0x21, 0x49, 0x08, 0x60, - 0x08, 0x46, 0x00, 0x68, 0x01, 0x21, 0x49, 0x05, 0x08, 0x43, 0x1E, 0x49, 0x08, 0x60, 0x08, 0x46, - 0x00, 0x68, 0x03, 0x21, 0x09, 0x06, 0x88, 0x43, 0x1A, 0x49, 0x08, 0x60, 0x08, 0x46, 0x00, 0x68, - 0x89, 0x04, 0x08, 0x43, 0x17, 0x49, 0x08, 0x60, 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0x89, 0x02, - 0x88, 0x43, 0x14, 0x49, 0x88, 0x60, 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0x09, 0x03, 0x88, 0x43, - 0x10, 0x49, 0x88, 0x60, 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0x49, 0x02, 0x08, 0x43, 0x0D, 0x49, - 0x88, 0x60, 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0xC9, 0x02, 0x08, 0x43, 0x09, 0x49, 0x88, 0x60, - 0xFF, 0xF7, 0x32, 0xFD, 0x07, 0x48, 0x80, 0x68, 0x01, 0x21, 0x89, 0x02, 0x08, 0x43, 0x05, 0x49, - 0x88, 0x60, 0x08, 0x46, 0x80, 0x68, 0x01, 0x21, 0x09, 0x03, 0x08, 0x43, 0x01, 0x49, 0x88, 0x60, - 0x00, 0xBD, 0x00, 0x00, 0x80, 0x40, 0x00, 0x50, 0xFF, 0xB5, 0x81, 0xB0, 0x0F, 0x46, 0x14, 0x46, - 0x1D, 0x46, 0x0A, 0x9E, 0xFF, 0xF7, 0x40, 0xFF, 0x01, 0x98, 0x40, 0x08, 0x40, 0x00, 0x01, 0x46, - 0xFF, 0xF7, 0x6C, 0xFE, 0xC0, 0x07, 0x12, 0xD0, 0x38, 0x0A, 0x01, 0x46, 0xFF, 0xF7, 0x66, 0xFE, - 0xC0, 0x07, 0x0C, 0xD0, 0xF8, 0xB2, 0x01, 0x46, 0xFF, 0xF7, 0x60, 0xFE, 0xC0, 0x07, 0x0F, 0xD1, - 0x05, 0xE0, 0x31, 0x78, 0x28, 0x78, 0xFF, 0xF7, 0x59, 0xFE, 0xC0, 0x07, 0x04, 0xD1, 0xFF, 0xF7, - 0x81, 0xFF, 0x00, 0x20, 0x05, 0xB0, 0xF0, 0xBD, 0x6D, 0x1C, 0x76, 0x1C, 0x64, 0x1E, 0xA4, 0xB2, - 0x00, 0x2C, 0xEE, 0xD1, 0xFF, 0xF7, 0x76, 0xFF, 0x01, 0x20, 0xF3, 0xE7, 0x04, 0x49, 0x08, 0x68, - 0x3C, 0x23, 0x98, 0x43, 0x18, 0x22, 0x20, 0x30, 0x10, 0x43, 0x08, 0x60, 0x70, 0x47, 0x00, 0x00, - 0x00, 0x00, 0x12, 0x40, 0xF8, 0xB5, 0x71, 0x4C, 0x3C, 0x25, 0x71, 0x4E, 0xC0, 0x28, 0x04, 0xD1, - 0x20, 0x68, 0xA8, 0x43, 0x0C, 0x30, 0x20, 0x60, 0x6C, 0xE0, 0x6E, 0x49, 0x6C, 0x4A, 0x03, 0x46, - 0xA8, 0x3B, 0x09, 0x78, 0x52, 0x7F, 0x10, 0x2B, 0x3A, 0xD8, 0x00, 0x29, 0x09, 0xD1, 0x6A, 0x48, - 0x80, 0x5C, 0xA0, 0x60, 0x20, 0x68, 0xA8, 0x43, 0x0C, 0x30, 0x20, 0x60, 0x52, 0x1C, 0x72, 0x77, - 0x26, 0xE0, 0xC9, 0x29, 0x01, 0xD0, 0xCA, 0x29, 0x17, 0xD1, 0xF1, 0x6B, 0x49, 0x1C, 0xF1, 0x63, - 0x32, 0x7A, 0x62, 0x48, 0x00, 0x2A, 0x00, 0x68, 0x06, 0xD0, 0x23, 0x22, 0x09, 0x1A, 0x92, 0x01, - 0x91, 0x42, 0x01, 0xDA, 0xF0, 0x6B, 0x00, 0xE0, 0xF0, 0x63, 0x00, 0x78, 0xFD, 0xF7, 0x8E, 0xFB, - 0x20, 0x68, 0xA8, 0x43, 0x0C, 0x30, 0x20, 0x60, 0x0A, 0xE0, 0x57, 0x48, 0x80, 0x5C, 0xFD, 0xF7, - 0x85, 0xFB, 0x20, 0x68, 0xA8, 0x43, 0x0C, 0x30, 0x20, 0x60, 0x70, 0x7F, 0x40, 0x1C, 0x70, 0x77, - 0x01, 0x20, 0x30, 0x72, 0xB0, 0x7A, 0x02, 0x28, 0x01, 0xD3, 0x00, 0x20, 0xB0, 0x72, 0xF8, 0xBD, - 0x60, 0x28, 0x2B, 0xD0, 0x68, 0x28, 0x29, 0xD0, 0x4B, 0x4F, 0x60, 0x37, 0x80, 0x28, 0x32, 0xD0, - 0xA0, 0x28, 0x20, 0x68, 0x7E, 0xD1, 0xA8, 0x43, 0x0C, 0x30, 0x20, 0x60, 0xF0, 0x79, 0x00, 0x28, - 0x03, 0xD0, 0x00, 0x20, 0xF0, 0x70, 0x01, 0x20, 0x70, 0x72, 0x30, 0x7A, 0x00, 0x28, 0xE6, 0xD0, - 0x3B, 0x7B, 0x03, 0x20, 0xDB, 0x06, 0x9B, 0x0F, 0x01, 0x2B, 0x00, 0xD1, 0x02, 0x20, 0xC9, 0x29, - 0x08, 0xD0, 0xCA, 0x29, 0x06, 0xD0, 0x3C, 0x49, 0x4B, 0x78, 0x89, 0x78, 0x0B, 0x43, 0x01, 0xD0, - 0x82, 0x42, 0xD4, 0xD9, 0x00, 0x20, 0x30, 0x71, 0xF0, 0x70, 0xF8, 0xBD, 0x20, 0x68, 0xA8, 0x43, - 0x0C, 0x30, 0x20, 0x60, 0x00, 0x20, 0xB0, 0x77, 0xF0, 0x77, 0x01, 0x21, 0xF1, 0x70, 0xB0, 0x71, - 0xF0, 0x71, 0x30, 0x72, 0xF8, 0xBD, 0xFD, 0xF7, 0xF5, 0xFA, 0x21, 0x68, 0xA9, 0x43, 0x0C, 0x31, - 0x21, 0x60, 0x01, 0x22, 0x32, 0x77, 0xB1, 0x79, 0x00, 0x29, 0x18, 0xD1, 0x70, 0x77, 0x38, 0x7B, - 0xC0, 0x06, 0x80, 0x0F, 0x01, 0x28, 0x10, 0xD1, 0x70, 0x7F, 0x1A, 0x28, 0x01, 0xD1, 0xC3, 0x20, - 0x02, 0xE0, 0x3D, 0x28, 0x02, 0xD1, 0x6A, 0x20, 0x70, 0x77, 0x06, 0xE0, 0x38, 0x28, 0x01, 0xD1, - 0xB2, 0x77, 0x02, 0xE0, 0x39, 0x28, 0x00, 0xD1, 0xF2, 0x77, 0xB2, 0x71, 0xF8, 0xBD, 0xF2, 0x71, - 0x39, 0x7B, 0xC9, 0x06, 0x89, 0x0F, 0x01, 0x29, 0x15, 0xD1, 0xB3, 0x7F, 0x1A, 0x49, 0x40, 0x31, - 0x01, 0x2B, 0x07, 0xD1, 0x00, 0x23, 0xB3, 0x77, 0x55, 0x28, 0x0A, 0xD0, 0x56, 0x28, 0x0A, 0xD1, - 0x72, 0x70, 0x06, 0xE0, 0xF2, 0x7F, 0x01, 0x2A, 0x05, 0xD1, 0x00, 0x22, 0xF2, 0x77, 0x55, 0x28, - 0x01, 0xD1, 0x0A, 0x74, 0x32, 0x70, 0x71, 0x79, 0x00, 0x29, 0x04, 0xD1, 0x71, 0x7F, 0x65, 0x29, - 0x01, 0xD3, 0xC2, 0x29, 0x04, 0xD9, 0x71, 0x7F, 0x50, 0x29, 0x01, 0xD0, 0x51, 0x29, 0x04, 0xD1, - 0x09, 0x49, 0x00, 0xE0, 0x05, 0xE0, 0x72, 0x7F, 0x88, 0x54, 0x70, 0x7F, 0x40, 0x1C, 0x70, 0x77, - 0xF8, 0xBD, 0xA8, 0x43, 0x08, 0x30, 0x20, 0x60, 0xF8, 0xBD, 0x00, 0x00, 0x00, 0x00, 0x12, 0x40, - 0x1C, 0x00, 0x00, 0x20, 0x2B, 0x01, 0x00, 0x20, 0xB4, 0x03, 0x00, 0x20, 0xB0, 0x01, 0x00, 0x20, - 0x30, 0xB4, 0x0A, 0x49, 0xC8, 0x68, 0x4B, 0x69, 0x09, 0x4A, 0xDB, 0x07, 0x05, 0xD0, 0x4B, 0x69, - 0x01, 0x24, 0x23, 0x43, 0x4B, 0x61, 0xD1, 0x68, 0x02, 0xE0, 0x38, 0x28, 0x04, 0xD9, 0x11, 0x68, - 0x00, 0x29, 0x01, 0xD0, 0x30, 0xBC, 0x08, 0x47, 0x30, 0xBC, 0x70, 0x47, 0x00, 0x00, 0x12, 0x40, - 0x28, 0x1A, 0x00, 0x20, 0x70, 0xB5, 0x26, 0x4D, 0x00, 0x24, 0x6C, 0x72, 0x6C, 0x71, 0x01, 0x20, - 0xFD, 0xF7, 0x34, 0xF8, 0x23, 0x48, 0xFD, 0xF7, 0x43, 0xFA, 0x23, 0x48, 0x01, 0x7B, 0x49, 0x07, - 0x49, 0x0F, 0x01, 0x29, 0x07, 0xD1, 0x00, 0x22, 0x55, 0x21, 0x10, 0x46, 0xFD, 0xF7, 0x68, 0xFA, - 0x00, 0x22, 0x55, 0x21, 0x0E, 0xE0, 0x00, 0x7B, 0x40, 0x07, 0x40, 0x0F, 0x02, 0x28, 0x02, 0xD1, - 0x00, 0x22, 0x5C, 0x21, 0x01, 0xE0, 0x00, 0x22, 0x55, 0x21, 0x00, 0x20, 0xFD, 0xF7, 0x58, 0xFA, - 0x00, 0x22, 0x5C, 0x21, 0x01, 0x20, 0xFD, 0xF7, 0x53, 0xFA, 0x14, 0x48, 0x01, 0x68, 0x3C, 0x22, - 0x91, 0x43, 0x09, 0x1D, 0x01, 0x60, 0x01, 0x68, 0x80, 0x22, 0x11, 0x43, 0x01, 0x60, 0x00, 0x21, - 0x13, 0x20, 0x01, 0xF0, 0xFF, 0xFC, 0x13, 0x20, 0x01, 0xF0, 0xE8, 0xFC, 0x0C, 0x49, 0x00, 0x20, - 0xFD, 0xF7, 0xF6, 0xF9, 0x0B, 0x49, 0x01, 0x20, 0xFD, 0xF7, 0xF2, 0xF9, 0x09, 0x49, 0x02, 0x20, - 0xFD, 0xF7, 0xEE, 0xF9, 0x07, 0x49, 0x03, 0x20, 0xFD, 0xF7, 0xEA, 0xF9, 0xAC, 0x72, 0x70, 0xBD, - 0x1C, 0x00, 0x00, 0x20, 0xC0, 0x27, 0x09, 0x00, 0x14, 0x04, 0x00, 0x20, 0x00, 0x00, 0x12, 0x40, - 0x05, 0x52, 0x00, 0x00, 0xED, 0x51, 0x00, 0x00, 0x70, 0xB5, 0x3A, 0x49, 0x0A, 0x78, 0x3A, 0x48, - 0x52, 0x07, 0x03, 0x7B, 0x52, 0x0F, 0x5B, 0x07, 0x5B, 0x0F, 0x9A, 0x42, 0x09, 0xD0, 0x00, 0x7B, - 0x0A, 0x78, 0x40, 0x07, 0x40, 0x0F, 0xD2, 0x08, 0xD2, 0x00, 0x02, 0x43, 0x0A, 0x70, 0xFF, 0xF7, - 0x91, 0xFF, 0x32, 0x4D, 0x2F, 0x4B, 0x30, 0x4C, 0x28, 0x78, 0x01, 0x22, 0x20, 0x3B, 0x20, 0x3C, - 0xC9, 0x28, 0x09, 0xD1, 0x20, 0x7C, 0x01, 0x28, 0x01, 0xD1, 0xC9, 0x20, 0x0D, 0xE0, 0xC9, 0x28, - 0x0C, 0xD0, 0x5A, 0x73, 0x1A, 0x73, 0x09, 0xE0, 0x21, 0x7C, 0xC9, 0x29, 0x01, 0xD1, 0x5A, 0x73, - 0x1A, 0x73, 0xCA, 0x28, 0x02, 0xD1, 0x01, 0x29, 0x00, 0xD1, 0x20, 0x74, 0x20, 0x7C, 0x00, 0x26, - 0x28, 0x70, 0x04, 0x28, 0x37, 0xD0, 0x08, 0xDC, 0x01, 0x28, 0x0B, 0xD0, 0x02, 0x28, 0x0E, 0xD0, - 0x03, 0x28, 0x33, 0xD1, 0x05, 0xF0, 0xD0, 0xFA, 0x70, 0xBD, 0xC9, 0x28, 0xFC, 0xD0, 0xCA, 0x28, - 0xFA, 0xD0, 0x2B, 0xE0, 0x26, 0x74, 0x2E, 0x70, 0x01, 0xF0, 0x4A, 0xFD, 0x70, 0xBD, 0x18, 0x48, - 0x01, 0x68, 0x18, 0x4A, 0x11, 0x43, 0x01, 0x60, 0x81, 0x68, 0x01, 0x22, 0x92, 0x03, 0x11, 0x43, - 0x81, 0x60, 0x04, 0xF0, 0xA1, 0xFE, 0x14, 0x48, 0x59, 0x21, 0x01, 0x60, 0x16, 0x21, 0x01, 0x60, - 0x88, 0x21, 0x01, 0x60, 0xFC, 0xF7, 0x3A, 0xFE, 0xF9, 0x24, 0x64, 0x02, 0x20, 0x46, 0xFC, 0xF7, - 0x45, 0xFE, 0x0E, 0x49, 0x20, 0x46, 0xFC, 0xF7, 0x95, 0xFE, 0x01, 0x20, 0xFC, 0xF7, 0x1A, 0xFE, - 0xFD, 0xF7, 0x42, 0xFB, 0x70, 0xBD, 0x03, 0x20, 0x02, 0xF0, 0x94, 0xFB, 0x26, 0x74, 0x2E, 0x70, - 0x70, 0xBD, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x20, 0x14, 0x04, 0x00, 0x20, 0x2B, 0x01, 0x00, 0x20, - 0x40, 0x40, 0x00, 0x50, 0x00, 0x00, 0x01, 0x40, 0x00, 0x01, 0x00, 0x50, 0x33, 0x33, 0x33, 0x33, - 0x10, 0xB5, 0x08, 0x48, 0xC0, 0x7A, 0x80, 0x07, 0x80, 0x0F, 0x06, 0xD0, 0x01, 0x28, 0x03, 0xD1, - 0x01, 0x21, 0x03, 0x20, 0xFD, 0xF7, 0x14, 0xF9, 0x10, 0xBD, 0x01, 0x21, 0x03, 0x20, 0xFC, 0xF7, - 0x93, 0xFE, 0x10, 0xBD, 0x14, 0x04, 0x00, 0x20, 0x20, 0x49, 0xC8, 0x68, 0x02, 0x46, 0x50, 0x32, - 0x4A, 0x62, 0x08, 0x62, 0x50, 0x32, 0x8A, 0x62, 0xA0, 0x32, 0xCA, 0x62, 0x50, 0x32, 0x0A, 0x63, - 0x50, 0x32, 0x4A, 0x63, 0x23, 0x22, 0x12, 0x01, 0x82, 0x18, 0xCA, 0x63, 0x05, 0x22, 0xD2, 0x01, - 0x82, 0x18, 0x0A, 0x64, 0x5F, 0x22, 0xD2, 0x00, 0x82, 0x18, 0x8A, 0x63, 0x0F, 0x22, 0x92, 0x01, - 0x82, 0x18, 0xCA, 0x65, 0x23, 0x22, 0x52, 0x01, 0x82, 0x18, 0x0A, 0x66, 0x05, 0x22, 0x12, 0x02, - 0x82, 0x18, 0x8A, 0x64, 0x2D, 0x22, 0x52, 0x01, 0x82, 0x18, 0xCA, 0x64, 0x19, 0x22, 0x92, 0x01, - 0x82, 0x18, 0x0A, 0x65, 0x37, 0x22, 0x52, 0x01, 0x82, 0x18, 0x4A, 0x65, 0x0F, 0x22, 0xD2, 0x01, - 0x82, 0x18, 0x8A, 0x65, 0x06, 0x4A, 0x82, 0x18, 0x4A, 0x64, 0x87, 0x22, 0x12, 0x01, 0x82, 0x18, - 0x4A, 0x61, 0x03, 0x4A, 0x3C, 0x32, 0x80, 0x18, 0x88, 0x61, 0x70, 0x47, 0xA4, 0x01, 0x00, 0x20, - 0x5C, 0x08, 0x00, 0x00, 0x10, 0xB5, 0x0A, 0x48, 0xC0, 0x7A, 0x80, 0x07, 0x80, 0x0F, 0x05, 0xD0, - 0x01, 0x28, 0x08, 0xD0, 0x02, 0x28, 0x06, 0xD0, 0x03, 0x28, 0x03, 0xD1, 0x01, 0x21, 0x03, 0x20, - 0xFC, 0xF7, 0x3A, 0xFE, 0x10, 0xBD, 0x01, 0x21, 0x03, 0x20, 0xFD, 0xF7, 0xB1, 0xF8, 0x10, 0xBD, - 0x14, 0x04, 0x00, 0x20, 0xF0, 0xB5, 0x25, 0x4A, 0x92, 0x6A, 0x52, 0x5C, 0x00, 0x2A, 0x42, 0xD0, - 0x23, 0x4A, 0x17, 0x7C, 0x94, 0x46, 0x21, 0x4A, 0x20, 0x4E, 0x54, 0x6A, 0x80, 0x3E, 0x13, 0x6A, - 0x32, 0x46, 0x60, 0x32, 0x45, 0x00, 0x49, 0x00, 0x00, 0x2F, 0x1D, 0xD0, 0x67, 0x46, 0x3F, 0x7C, - 0x87, 0x42, 0x19, 0xD8, 0xB0, 0x7F, 0x00, 0x28, 0x02, 0xD1, 0x58, 0x5E, 0x61, 0x5E, 0x01, 0xE0, - 0x60, 0x5E, 0x59, 0x5E, 0x0E, 0x23, 0xD3, 0x5E, 0x98, 0x42, 0x24, 0xDD, 0x10, 0x23, 0xD3, 0x5E, - 0x98, 0x42, 0x20, 0xDA, 0x13, 0x48, 0x43, 0x5F, 0x12, 0x20, 0x10, 0x5E, 0x18, 0xE0, 0x18, 0x18, - 0x88, 0x42, 0x18, 0xDD, 0x01, 0x20, 0xF0, 0xBD, 0x30, 0x7F, 0x00, 0x28, 0x02, 0xD1, 0x58, 0x5E, - 0x61, 0x5E, 0x01, 0xE0, 0x60, 0x5E, 0x59, 0x5E, 0x08, 0x23, 0xD3, 0x5E, 0x98, 0x42, 0x0A, 0xDD, - 0x0A, 0x23, 0xD3, 0x5E, 0x98, 0x42, 0x06, 0xDA, 0x06, 0x48, 0x43, 0x5F, 0x0C, 0x20, 0x10, 0x5E, - 0x1A, 0x1A, 0x8A, 0x42, 0xE3, 0xDB, 0x00, 0x20, 0xF0, 0xBD, 0x00, 0x00, 0xA4, 0x01, 0x00, 0x20, - 0x54, 0x04, 0x00, 0x20, 0x8A, 0x06, 0x00, 0x20, 0x08, 0x4B, 0x10, 0xB5, 0x00, 0x20, 0x58, 0x72, - 0x19, 0x46, 0x24, 0x31, 0x5A, 0x79, 0x06, 0xE0, 0x0C, 0x5C, 0x03, 0x2C, 0x02, 0xD9, 0x01, 0x20, - 0x58, 0x72, 0x10, 0xBD, 0x40, 0x1C, 0x90, 0x42, 0xF6, 0xDB, 0x10, 0xBD, 0x80, 0x03, 0x00, 0x20, - 0xF8, 0xB5, 0x3B, 0x4C, 0x00, 0x25, 0x62, 0x79, 0x2E, 0x46, 0x2F, 0x46, 0x00, 0x2A, 0x6E, 0xD0, - 0x00, 0x20, 0x38, 0x4B, 0x0C, 0xE0, 0x41, 0x00, 0x59, 0x5E, 0xA9, 0x42, 0x03, 0xDD, 0x2E, 0x46, - 0x0D, 0x46, 0x07, 0x46, 0x02, 0xE0, 0xB1, 0x42, 0x00, 0xDD, 0x0E, 0x46, 0x40, 0x1C, 0xC0, 0xB2, - 0x90, 0x42, 0xF0, 0xD3, 0x00, 0x24, 0x17, 0xE0, 0x2E, 0x4A, 0x60, 0x00, 0x10, 0x32, 0x11, 0x5E, - 0x19, 0x23, 0xDB, 0x01, 0x99, 0x42, 0x08, 0xDC, 0x2B, 0x4B, 0x1B, 0x88, 0xC9, 0x18, 0x11, 0x52, - 0x27, 0x49, 0x24, 0x31, 0x08, 0x5D, 0x40, 0x1C, 0x08, 0x55, 0xA7, 0x42, 0x02, 0xD0, 0x20, 0x46, - 0x04, 0xF0, 0xCA, 0xFC, 0x64, 0x1C, 0xE4, 0xB2, 0x21, 0x48, 0x40, 0x79, 0x84, 0x42, 0xE3, 0xD3, - 0x1F, 0x4C, 0xE0, 0x78, 0x85, 0x42, 0x03, 0xDA, 0x38, 0x46, 0x04, 0xF0, 0xBD, 0xFC, 0x18, 0xE0, - 0xA0, 0x78, 0x85, 0x42, 0x15, 0xDD, 0xB5, 0x42, 0x13, 0xD0, 0xA8, 0x19, 0x0A, 0x22, 0xA9, 0x1B, - 0x50, 0x43, 0xFA, 0xF7, 0x75, 0xFD, 0x21, 0x79, 0x88, 0x42, 0x0A, 0xDC, 0x15, 0x49, 0x00, 0x20, - 0x7A, 0x00, 0x10, 0x31, 0x88, 0x52, 0x12, 0x49, 0x24, 0x31, 0xC8, 0x55, 0x01, 0x20, 0xB8, 0x40, - 0x20, 0x72, 0x0E, 0x20, 0x20, 0x5E, 0x11, 0x49, 0x88, 0x42, 0x03, 0xDC, 0x0E, 0x4A, 0x12, 0x88, - 0x80, 0x18, 0xE0, 0x81, 0x0E, 0x20, 0x20, 0x5E, 0x88, 0x42, 0x0C, 0xDD, 0x09, 0x4A, 0x78, 0x00, - 0x10, 0x3A, 0x13, 0x46, 0x10, 0x3B, 0x11, 0x5A, 0x1B, 0x5A, 0xC9, 0x18, 0x09, 0x04, 0x49, 0x0C, - 0x11, 0x52, 0x10, 0x20, 0xE0, 0x71, 0x20, 0x7A, 0x00, 0x28, 0x00, 0xD1, 0xE0, 0x81, 0xF8, 0xBD, - 0x80, 0x03, 0x00, 0x20, 0x58, 0x1A, 0x00, 0x20, 0x4A, 0x00, 0x00, 0x20, 0x30, 0x75, 0x00, 0x00, - 0xFE, 0xB5, 0x00, 0x20, 0xF9, 0x4B, 0x00, 0x90, 0x58, 0x7E, 0xF9, 0x49, 0x02, 0x90, 0xC9, 0x7A, - 0x49, 0x06, 0x02, 0xD5, 0x03, 0x21, 0x08, 0x1A, 0xC0, 0xB2, 0x02, 0x28, 0x02, 0xD3, 0x05, 0x21, - 0x08, 0x1A, 0xC0, 0xB2, 0xF2, 0x4C, 0x40, 0x34, 0xE1, 0x7D, 0x2A, 0x29, 0x01, 0xD9, 0x00, 0x21, - 0x00, 0xE0, 0xE1, 0x7D, 0xE1, 0x75, 0xA1, 0x7D, 0x2A, 0x29, 0x01, 0xD9, 0x00, 0x21, 0x00, 0xE0, - 0xA1, 0x7D, 0xA1, 0x75, 0x21, 0x7E, 0xA2, 0x7D, 0x89, 0x18, 0x2A, 0x29, 0x01, 0xD9, 0x00, 0x21, - 0x00, 0xE0, 0x21, 0x7E, 0x21, 0x76, 0x61, 0x7E, 0xE2, 0x7D, 0x89, 0x18, 0x2A, 0x29, 0x01, 0xD9, - 0x00, 0x21, 0x00, 0xE0, 0x61, 0x7E, 0x61, 0x76, 0xE1, 0x7E, 0x2A, 0x29, 0x01, 0xD9, 0x00, 0x21, - 0x00, 0xE0, 0xE1, 0x7E, 0xE1, 0x76, 0xA1, 0x7E, 0x2A, 0x29, 0x01, 0xD9, 0x00, 0x21, 0x00, 0xE0, - 0xA1, 0x7E, 0xA1, 0x76, 0x21, 0x7F, 0xA2, 0x7E, 0x89, 0x18, 0x2A, 0x29, 0x01, 0xD9, 0x00, 0x21, - 0x00, 0xE0, 0x21, 0x7F, 0x21, 0x77, 0x61, 0x7F, 0xE2, 0x7E, 0x89, 0x18, 0x2A, 0x29, 0x01, 0xD9, - 0x00, 0x21, 0x00, 0xE0, 0x61, 0x7F, 0x61, 0x77, 0xA2, 0x7F, 0xD0, 0x49, 0xE4, 0x31, 0x0A, 0x71, - 0xCF, 0x4A, 0x60, 0x32, 0x55, 0x78, 0x4D, 0x71, 0xE5, 0x7F, 0x8D, 0x71, 0x12, 0x78, 0xCA, 0x71, - 0x85, 0x07, 0x0A, 0x79, 0xAD, 0x0F, 0x4A, 0x55, 0x42, 0x1C, 0x92, 0x07, 0x4D, 0x79, 0x92, 0x0F, - 0x8D, 0x54, 0x82, 0x1C, 0x92, 0x07, 0x8D, 0x79, 0x92, 0x0F, 0x8D, 0x54, 0xC2, 0x1C, 0x92, 0x07, - 0xCD, 0x79, 0x92, 0x0F, 0x8D, 0x54, 0xC1, 0x4A, 0x00, 0x25, 0xD5, 0x84, 0x0D, 0x46, 0xA4, 0x3D, - 0x6A, 0x89, 0xBE, 0x4B, 0x17, 0xB2, 0x01, 0x97, 0x00, 0x26, 0x5F, 0x85, 0x1E, 0x85, 0xAF, 0x89, - 0x1E, 0x46, 0x3B, 0xB2, 0x9C, 0x46, 0xB3, 0x85, 0xCB, 0x78, 0x53, 0x43, 0x9B, 0x0A, 0xF3, 0x85, - 0x4B, 0x78, 0x53, 0x43, 0x9B, 0x0A, 0xD2, 0x1A, 0x33, 0x46, 0x5A, 0x86, 0x0A, 0x78, 0xB5, 0x4E, - 0x7A, 0x43, 0x92, 0x0A, 0x1A, 0x86, 0x89, 0x78, 0x79, 0x43, 0x89, 0x0A, 0x7A, 0x1A, 0x19, 0x46, - 0x8A, 0x86, 0x00, 0x22, 0x80, 0x31, 0xCA, 0x61, 0x52, 0x1E, 0xAC, 0x49, 0x06, 0x27, 0x80, 0x31, - 0xC9, 0x69, 0x0B, 0x46, 0x79, 0x43, 0x72, 0x52, 0x89, 0x19, 0x4A, 0x80, 0x8A, 0x80, 0x59, 0x1C, - 0xA6, 0x4B, 0x80, 0x33, 0xD9, 0x61, 0x0A, 0x29, 0xEF, 0xDB, 0x21, 0x7B, 0x09, 0x07, 0x04, 0xD0, - 0x21, 0x7B, 0x09, 0x07, 0x09, 0x0F, 0x03, 0x29, 0x09, 0xD1, 0xA0, 0x48, 0x00, 0x21, 0x81, 0x71, - 0xC1, 0x84, 0x01, 0x9A, 0x42, 0x85, 0x01, 0x85, 0x61, 0x46, 0x81, 0x85, 0xFE, 0xBD, 0x21, 0x7B, - 0x02, 0x01, 0x8A, 0x18, 0x99, 0x49, 0x4A, 0x77, 0xD2, 0xB2, 0x92, 0x06, 0x23, 0x7B, 0x92, 0x0E, - 0x80, 0x01, 0x18, 0x18, 0x48, 0x77, 0xC0, 0xB2, 0x80, 0x09, 0x80, 0x01, 0x10, 0x43, 0x00, 0x26, - 0x0F, 0x46, 0x88, 0x71, 0x80, 0x37, 0xFE, 0x61, 0x91, 0x49, 0xF8, 0x69, 0x60, 0x39, 0x09, 0x18, - 0xA0, 0x31, 0x09, 0x79, 0x8F, 0x4B, 0x42, 0x00, 0xB4, 0x33, 0x99, 0x52, 0x8B, 0x49, 0xE4, 0x31, - 0x0E, 0x54, 0x08, 0x31, 0x0E, 0x54, 0x40, 0x1C, 0xF8, 0x61, 0x08, 0x28, 0xEC, 0xDB, 0x1A, 0x46, - 0x0A, 0x3A, 0xFE, 0x61, 0x85, 0x4E, 0x00, 0x23, 0x80, 0x36, 0xF0, 0x69, 0x41, 0x1C, 0x13, 0x54, - 0xF1, 0x61, 0x0A, 0x29, 0xF6, 0xDB, 0x02, 0x98, 0x80, 0x3E, 0x00, 0x28, 0x15, 0xD0, 0x01, 0x28, - 0x13, 0xD0, 0x02, 0x28, 0x05, 0xD0, 0x03, 0x28, 0x0F, 0xD1, 0x00, 0x20, 0x02, 0xF0, 0x38, 0xFA, - 0x08, 0xE0, 0xB0, 0x79, 0xC0, 0x07, 0x08, 0xD0, 0x00, 0x20, 0x02, 0xF0, 0x31, 0xFA, 0xB0, 0x79, - 0xC0, 0x07, 0x02, 0xD0, 0x01, 0x20, 0x02, 0xF0, 0x2B, 0xFA, 0x74, 0x48, 0x81, 0x79, 0x76, 0x48, - 0xCA, 0x06, 0x72, 0x4A, 0x22, 0xD4, 0x8B, 0x06, 0x9B, 0x0F, 0x0C, 0xD1, 0x03, 0x81, 0xA3, 0x7B, - 0xAE, 0x89, 0x73, 0x43, 0x9B, 0x0A, 0x43, 0x81, 0xA3, 0x7B, 0xE7, 0x7B, 0xDB, 0x19, 0x73, 0x43, - 0x9B, 0x0A, 0x13, 0x85, 0x0D, 0xE0, 0xAB, 0x89, 0x43, 0x81, 0xA6, 0x7B, 0x5E, 0x43, 0xB6, 0x0A, - 0x9E, 0x1B, 0x06, 0x81, 0xA6, 0x7B, 0xE7, 0x7B, 0xF6, 0x19, 0x5E, 0x43, 0xB6, 0x0A, 0x9B, 0x1B, - 0x93, 0x85, 0x01, 0x23, 0x13, 0x77, 0x63, 0x7B, 0x6A, 0x89, 0x23, 0xE0, 0x8B, 0x06, 0x9B, 0x0F, - 0x03, 0x2B, 0x0D, 0xD1, 0x00, 0x23, 0x03, 0x81, 0xA3, 0x7B, 0x6E, 0x89, 0x73, 0x43, 0x9B, 0x0A, - 0x43, 0x81, 0xA3, 0x7B, 0xE7, 0x7B, 0xDB, 0x19, 0x73, 0x43, 0x9B, 0x0A, 0xD3, 0x84, 0x0D, 0xE0, - 0x6B, 0x89, 0x43, 0x81, 0xA6, 0x7B, 0x5E, 0x43, 0xB6, 0x0A, 0x9E, 0x1B, 0x06, 0x81, 0xA6, 0x7B, - 0xE7, 0x7B, 0xF6, 0x19, 0x5E, 0x43, 0xB6, 0x0A, 0x9B, 0x1B, 0x53, 0x85, 0x00, 0x23, 0x13, 0x77, - 0x63, 0x7B, 0xAA, 0x89, 0x53, 0x43, 0x5B, 0x0A, 0x83, 0x81, 0x23, 0x7C, 0x12, 0xB2, 0x00, 0x2B, - 0x4C, 0xD0, 0x4A, 0x4B, 0x4E, 0x06, 0x21, 0xD4, 0x89, 0x09, 0x0C, 0xD1, 0xC1, 0x81, 0xA1, 0x7C, - 0xAE, 0x89, 0x71, 0x43, 0x89, 0x0A, 0x01, 0x82, 0xA1, 0x7C, 0xE7, 0x7C, 0xC9, 0x19, 0x71, 0x43, - 0x89, 0x0A, 0x19, 0x85, 0x0D, 0xE0, 0xA9, 0x89, 0x01, 0x82, 0xA6, 0x7C, 0x4E, 0x43, 0xB6, 0x0A, - 0x8E, 0x1B, 0xC6, 0x81, 0xA6, 0x7C, 0xE7, 0x7C, 0xF6, 0x19, 0x4E, 0x43, 0xB6, 0x0A, 0x89, 0x1B, - 0x99, 0x85, 0x01, 0x21, 0x99, 0x77, 0x63, 0x7C, 0x69, 0x89, 0x22, 0xE0, 0x89, 0x09, 0x03, 0x29, - 0x0D, 0xD1, 0x00, 0x21, 0xC1, 0x81, 0xA1, 0x7C, 0x6E, 0x89, 0x71, 0x43, 0x89, 0x0A, 0x01, 0x82, - 0xA1, 0x7C, 0xE7, 0x7C, 0xC9, 0x19, 0x71, 0x43, 0x89, 0x0A, 0xD9, 0x84, 0x0D, 0xE0, 0x69, 0x89, - 0x01, 0x82, 0xA6, 0x7C, 0x4E, 0x43, 0xB6, 0x0A, 0x8E, 0x1B, 0xC6, 0x81, 0xA6, 0x7C, 0xE7, 0x7C, - 0xF6, 0x19, 0x4E, 0x43, 0xB6, 0x0A, 0x89, 0x1B, 0x59, 0x85, 0x00, 0x21, 0x99, 0x77, 0x63, 0x7C, - 0xA9, 0x89, 0x4B, 0x43, 0x5B, 0x0A, 0x09, 0xB2, 0x43, 0x82, 0x00, 0x91, 0x26, 0x48, 0x00, 0x21, - 0x20, 0x30, 0x07, 0x46, 0xC1, 0x61, 0x22, 0x49, 0xF8, 0x69, 0x60, 0x39, 0x09, 0x18, 0xA0, 0x31, - 0x09, 0x79, 0x00, 0x29, 0x1A, 0xD0, 0x21, 0x7C, 0x00, 0x29, 0x09, 0xD0, 0x21, 0x7C, 0x81, 0x42, - 0x06, 0xDC, 0x1C, 0x4D, 0x43, 0x00, 0xB4, 0x35, 0xE9, 0x5E, 0x00, 0x9E, 0x71, 0x43, 0x04, 0xE0, - 0x18, 0x4D, 0x43, 0x00, 0xB4, 0x35, 0xE9, 0x5E, 0x51, 0x43, 0xCE, 0x17, 0x36, 0x0E, 0x71, 0x18, - 0x09, 0x12, 0x40, 0x1C, 0xE9, 0x52, 0xF8, 0x61, 0x08, 0x28, 0xDC, 0xDB, 0x0F, 0x49, 0x2E, 0x22, - 0x26, 0x20, 0x8A, 0x5E, 0x08, 0x5E, 0x82, 0x42, 0x00, 0xDA, 0xC8, 0x85, 0x32, 0x22, 0x2A, 0x20, - 0x8A, 0x5E, 0x08, 0x5E, 0x82, 0x42, 0x00, 0xDD, 0x48, 0x86, 0x30, 0x22, 0x28, 0x20, 0x8A, 0x5E, - 0x08, 0x5E, 0x82, 0x42, 0x00, 0xDA, 0x08, 0x86, 0x34, 0x22, 0x2C, 0x20, 0x8A, 0x5E, 0x08, 0x5E, - 0x82, 0x42, 0x00, 0xDD, 0x88, 0x86, 0xF8, 0x69, 0x48, 0x71, 0xFE, 0xBD, 0x24, 0x01, 0x00, 0x20, - 0x14, 0x04, 0x00, 0x20, 0xD6, 0x05, 0x00, 0x20, 0x84, 0x01, 0x00, 0x20, 0x70, 0xB5, 0x19, 0x4B, - 0x58, 0x78, 0x99, 0x79, 0x04, 0x46, 0x00, 0x29, 0x02, 0xD1, 0x17, 0x48, 0x40, 0x7C, 0x22, 0xE0, - 0xFF, 0x29, 0x20, 0xD0, 0x1A, 0x7A, 0x00, 0x2A, 0x03, 0xD1, 0x14, 0x4D, 0x2D, 0x78, 0x00, 0x2D, - 0x0D, 0xD0, 0x00, 0x25, 0x03, 0x29, 0x01, 0xD1, 0xFF, 0x20, 0x06, 0xE0, 0x00, 0x2A, 0x06, 0xD0, - 0x01, 0x29, 0xF9, 0xD0, 0x02, 0x29, 0x00, 0xD1, 0x10, 0x46, 0x5D, 0x81, 0x0B, 0xE0, 0x0A, 0x21, - 0x0C, 0x22, 0x59, 0x5E, 0x9A, 0x5E, 0x91, 0x42, 0x04, 0xDC, 0x09, 0x4A, 0x12, 0x88, 0x89, 0x18, - 0x59, 0x81, 0x00, 0xE0, 0x00, 0x20, 0xA0, 0x42, 0x03, 0xD0, 0x58, 0x70, 0xC0, 0xB2, 0x03, 0xF0, - 0x89, 0xFB, 0x70, 0xBD, 0x80, 0x03, 0x00, 0x20, 0xF4, 0x03, 0x00, 0x20, 0x27, 0x00, 0x00, 0x20, - 0x4A, 0x00, 0x00, 0x20, 0xF0, 0xB5, 0x2A, 0x48, 0x80, 0x79, 0x00, 0x28, 0x4F, 0xD0, 0x28, 0x4E, - 0x00, 0x20, 0x80, 0x36, 0x27, 0x4F, 0x35, 0x46, 0x64, 0x35, 0xF0, 0x61, 0x39, 0x5C, 0x00, 0x29, - 0x1C, 0xD1, 0xB1, 0x6A, 0x08, 0x5C, 0x00, 0x28, 0x1F, 0xD0, 0x00, 0x24, 0x12, 0xE0, 0x28, 0x5D, - 0x00, 0x28, 0x0D, 0xD1, 0xF0, 0x69, 0xC1, 0xB2, 0x20, 0x46, 0xFF, 0xF7, 0xC3, 0xFC, 0x28, 0x55, - 0x28, 0x5D, 0x00, 0x28, 0x04, 0xD0, 0x1A, 0x49, 0xF0, 0x69, 0xEC, 0x31, 0x08, 0x55, 0x05, 0xE0, - 0x64, 0x1C, 0xE4, 0xB2, 0x16, 0x48, 0x40, 0x79, 0x84, 0x42, 0xE8, 0xD3, 0xF1, 0x69, 0xB0, 0x6A, - 0x40, 0x5C, 0x00, 0x28, 0x01, 0xD0, 0x01, 0x22, 0x00, 0xE0, 0x00, 0x22, 0xF1, 0x69, 0x48, 0x1C, - 0x7A, 0x54, 0xF0, 0x61, 0x0A, 0x28, 0xD1, 0xDB, 0x0D, 0x4E, 0x00, 0x20, 0x37, 0x46, 0x70, 0x77, - 0x04, 0x46, 0xEC, 0x37, 0x10, 0xE0, 0x28, 0x5D, 0x01, 0x28, 0x0B, 0xD1, 0x39, 0x5D, 0x20, 0x46, - 0xFF, 0xF7, 0x98, 0xFC, 0x28, 0x55, 0x28, 0x5D, 0x01, 0x28, 0x03, 0xD1, 0x71, 0x7F, 0xA0, 0x40, - 0x08, 0x43, 0x70, 0x77, 0x64, 0x1C, 0xE4, 0xB2, 0x70, 0x79, 0x84, 0x42, 0xEB, 0xD3, 0xF0, 0xBD, - 0x24, 0x01, 0x00, 0x20, 0x80, 0x06, 0x00, 0x20, 0xF0, 0xB5, 0x0D, 0x4E, 0x00, 0x24, 0x37, 0x46, - 0x05, 0x46, 0x10, 0x3F, 0x0E, 0xE0, 0x60, 0x00, 0x29, 0x5C, 0x42, 0x19, 0x52, 0x78, 0x09, 0x02, - 0x89, 0x18, 0x64, 0x29, 0x02, 0xD2, 0x31, 0x5A, 0x39, 0x52, 0x02, 0xE0, 0xE0, 0xB2, 0xFB, 0xF7, - 0x75, 0xFB, 0x64, 0x1C, 0x03, 0x48, 0x40, 0x79, 0x84, 0x42, 0xEC, 0xDB, 0xF0, 0xBD, 0x00, 0x00, - 0x48, 0x1A, 0x00, 0x20, 0x80, 0x03, 0x00, 0x20, 0x10, 0xB5, 0x00, 0x23, 0x06, 0xE0, 0xC2, 0x5C, - 0x5C, 0x1C, 0x04, 0x5D, 0xC4, 0x54, 0x5C, 0x1C, 0x02, 0x55, 0x9B, 0x1C, 0x8B, 0x42, 0xF6, 0xDB, - 0x10, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x04, 0xF0, 0x57, 0xFA, 0x4B, 0x4C, 0x3C, 0x20, 0xA0, 0x76, - 0x4A, 0x4F, 0x59, 0x20, 0x38, 0x60, 0x16, 0x20, 0x38, 0x60, 0x88, 0x20, 0x38, 0x60, 0x48, 0x48, - 0x01, 0x68, 0x04, 0x26, 0x31, 0x43, 0x01, 0x60, 0x01, 0x68, 0x49, 0x08, 0x49, 0x00, 0x01, 0x60, - 0x02, 0x20, 0xFC, 0xF7, 0xC7, 0xFD, 0x01, 0x28, 0xFA, 0xD1, 0xFC, 0xF7, 0xDF, 0xF9, 0xF9, 0x25, - 0x6D, 0x02, 0x69, 0x46, 0x28, 0x46, 0xFC, 0xF7, 0x11, 0xFA, 0x3E, 0x49, 0x00, 0x98, 0x88, 0x42, - 0x06, 0xD1, 0x28, 0x46, 0xFC, 0xF7, 0xE2, 0xF9, 0x3B, 0x49, 0x28, 0x46, 0xFC, 0xF7, 0x32, 0xFA, - 0x01, 0x20, 0xFC, 0xF7, 0x15, 0xFF, 0xA0, 0x7E, 0x38, 0x49, 0x48, 0x43, 0xFC, 0xF7, 0x7A, 0xFE, - 0x02, 0x20, 0xFC, 0xF7, 0xE3, 0xFE, 0xFC, 0xF7, 0xB9, 0xF9, 0x00, 0x25, 0x3D, 0x60, 0x28, 0x46, - 0xFC, 0xF7, 0x04, 0xFB, 0x32, 0x48, 0x01, 0x68, 0x32, 0x4A, 0x11, 0x40, 0x01, 0x60, 0x01, 0x68, - 0x31, 0x4A, 0x11, 0x43, 0x01, 0x60, 0x81, 0x68, 0xB1, 0x43, 0x81, 0x60, 0x81, 0x68, 0x2F, 0x4A, - 0x11, 0x43, 0x81, 0x60, 0x2A, 0x48, 0x40, 0x30, 0x01, 0x68, 0x30, 0x22, 0x11, 0x43, 0x01, 0x60, - 0x81, 0x68, 0x31, 0x43, 0x81, 0x60, 0x03, 0x22, 0x11, 0x46, 0x10, 0x46, 0xFC, 0xF7, 0x6E, 0xFC, - 0x03, 0x22, 0x01, 0x21, 0x02, 0x20, 0xFC, 0xF7, 0x69, 0xFC, 0x03, 0x22, 0x11, 0x46, 0x02, 0x20, - 0xFC, 0xF7, 0x64, 0xFC, 0x02, 0x22, 0x09, 0x21, 0x10, 0x46, 0xFC, 0xF7, 0x5F, 0xFC, 0x02, 0x22, - 0x0B, 0x21, 0x10, 0x46, 0xFC, 0xF7, 0x5A, 0xFC, 0x02, 0x22, 0x0A, 0x21, 0x10, 0x46, 0xFC, 0xF7, - 0x55, 0xFC, 0x02, 0x22, 0x0C, 0x21, 0x10, 0x46, 0xFC, 0xF7, 0x50, 0xFC, 0x03, 0x22, 0x01, 0x21, - 0x10, 0x46, 0xFC, 0xF7, 0x4B, 0xFC, 0x01, 0x20, 0x20, 0x73, 0x65, 0x73, 0x03, 0x21, 0x65, 0x77, - 0x08, 0x46, 0xFC, 0xF7, 0xA7, 0xFA, 0x05, 0x46, 0x03, 0x21, 0x02, 0x20, 0xFC, 0xF7, 0xA2, 0xFA, - 0x04, 0x00, 0x04, 0xD1, 0x00, 0x22, 0x03, 0x21, 0x02, 0x20, 0xFC, 0xF7, 0x37, 0xFC, 0x68, 0x00, - 0x01, 0x19, 0x0B, 0x48, 0x81, 0x74, 0xF8, 0xBD, 0x1C, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x50, - 0x00, 0x02, 0x00, 0x50, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x40, 0x42, 0x0F, 0x00, - 0x80, 0x40, 0x00, 0x50, 0xCC, 0xFF, 0xFC, 0xF3, 0x13, 0x00, 0x03, 0x0C, 0x01, 0x21, 0x00, 0x00, - 0xF4, 0x03, 0x00, 0x20, 0x10, 0xB5, 0xFE, 0xF7, 0xC9, 0xF8, 0x00, 0xF0, 0xCD, 0xFC, 0xFA, 0xF7, - 0xFF, 0xFC, 0x00, 0xF0, 0x15, 0xF8, 0xFB, 0xF7, 0xEF, 0xF8, 0xFB, 0xF7, 0x15, 0xF9, 0xFB, 0xF7, - 0x13, 0xF9, 0xFD, 0xF7, 0xBD, 0xFB, 0x00, 0xF0, 0xF5, 0xF8, 0xFA, 0xF7, 0xC5, 0xFA, 0xFB, 0xF7, - 0x9D, 0xFD, 0xFB, 0xF7, 0x0B, 0xFC, 0xFF, 0xF7, 0xAD, 0xFE, 0x02, 0xF0, 0x79, 0xFC, 0x10, 0xBD, - 0xF8, 0xB5, 0x73, 0x4D, 0x00, 0x20, 0x29, 0x46, 0x40, 0x39, 0x0C, 0x46, 0xE8, 0x83, 0x60, 0x34, - 0x68, 0x83, 0x08, 0x76, 0xA0, 0x82, 0x08, 0x70, 0x08, 0x7C, 0x49, 0x7C, 0x22, 0x46, 0x80, 0x1C, - 0x20, 0x32, 0x49, 0x1C, 0x41, 0x43, 0x00, 0x91, 0xD0, 0x61, 0xC8, 0xE0, 0x68, 0x49, 0x40, 0x31, - 0x0B, 0x69, 0x19, 0x5C, 0x00, 0x29, 0x7E, 0xD1, 0x65, 0x4F, 0x41, 0x00, 0x40, 0x37, 0xBA, 0x68, - 0x56, 0x5E, 0x8A, 0x18, 0x6E, 0x82, 0x02, 0x21, 0x51, 0x5E, 0xB1, 0x42, 0x73, 0xDC, 0x18, 0x18, - 0x02, 0x21, 0x41, 0x70, 0x3E, 0x46, 0x80, 0x3E, 0x32, 0x7C, 0xF8, 0x69, 0xB9, 0x68, 0x80, 0x18, - 0x42, 0x00, 0x51, 0x18, 0x12, 0x23, 0x04, 0x22, 0xEB, 0x5E, 0x8A, 0x5E, 0x9A, 0x42, 0xED, 0xDC, - 0x3A, 0x69, 0x02, 0x21, 0x80, 0x18, 0x81, 0x70, 0xF8, 0x69, 0xB9, 0x68, 0x42, 0x00, 0x52, 0x18, - 0x20, 0x3A, 0x1E, 0x23, 0xD3, 0x5E, 0x12, 0x22, 0xAA, 0x5E, 0x93, 0x42, 0xDE, 0xDC, 0x33, 0x7C, - 0xC3, 0x1A, 0x5B, 0x00, 0x59, 0x18, 0x20, 0x39, 0x1C, 0x23, 0xCB, 0x5E, 0x93, 0x42, 0x4A, 0xDC, - 0x3B, 0x69, 0x01, 0x21, 0x19, 0x54, 0x31, 0x7C, 0xF8, 0x69, 0x89, 0x1C, 0xFA, 0xF7, 0x58, 0xF9, - 0x21, 0x80, 0x61, 0x80, 0xA0, 0x80, 0xE0, 0x80, 0x01, 0x20, 0xA8, 0x83, 0x68, 0x8A, 0x28, 0x83, - 0x00, 0x21, 0x30, 0x46, 0x71, 0x75, 0x20, 0x30, 0xC1, 0x70, 0xFD, 0xF7, 0xF9, 0xFB, 0x04, 0x21, - 0x61, 0x5E, 0x01, 0x23, 0x13, 0xE0, 0x00, 0x20, 0x20, 0x5E, 0x0B, 0xE0, 0x3C, 0x4A, 0x3C, 0x4E, - 0x40, 0x3A, 0x12, 0x7C, 0x40, 0x36, 0x36, 0x69, 0x92, 0x1C, 0x4A, 0x43, 0x47, 0x1C, 0x30, 0x18, - 0x13, 0x54, 0x38, 0x46, 0x02, 0x22, 0xA2, 0x5E, 0x90, 0x42, 0xEF, 0xD9, 0x49, 0x1C, 0x06, 0x20, - 0x20, 0x5E, 0x81, 0x42, 0xE7, 0xD9, 0x28, 0x8B, 0x00, 0x28, 0x53, 0xD0, 0x02, 0x20, 0x00, 0x21, - 0x20, 0x5E, 0x61, 0x5E, 0x88, 0x42, 0x06, 0xD1, 0x06, 0x22, 0x04, 0x26, 0xA2, 0x5E, 0xA6, 0x5F, - 0x92, 0x1B, 0x03, 0x2A, 0x46, 0xDC, 0x40, 0x1A, 0x03, 0x28, 0x07, 0xDD, 0x06, 0x20, 0x04, 0x21, - 0x20, 0x5E, 0x61, 0x5E, 0x00, 0xE0, 0x3D, 0xE0, 0x88, 0x42, 0x3B, 0xD0, 0x24, 0x4E, 0xA8, 0x8B, - 0x40, 0x3E, 0xF1, 0x7D, 0x88, 0x42, 0x00, 0xD3, 0x33, 0x70, 0xFD, 0xF7, 0x73, 0xFF, 0x29, 0x8B, - 0x08, 0x1A, 0x28, 0x83, 0x31, 0x7E, 0x4A, 0x00, 0x1D, 0x49, 0x40, 0x31, 0x8B, 0x69, 0x98, 0x52, - 0x18, 0x20, 0x28, 0x5E, 0xF2, 0x7C, 0x90, 0x42, 0x02, 0xDD, 0xA0, 0x8A, 0x40, 0x1C, 0xA0, 0x82, - 0xEB, 0x8B, 0x4A, 0x69, 0x20, 0x88, 0xD0, 0x54, 0xE8, 0x8B, 0x40, 0x1C, 0x80, 0xB2, 0xE8, 0x83, - 0x4B, 0x69, 0x62, 0x88, 0x1A, 0x54, 0xE8, 0x8B, 0x40, 0x1C, 0x80, 0xB2, 0xE8, 0x83, 0x4B, 0x69, - 0xA2, 0x88, 0x1A, 0x54, 0xE8, 0x8B, 0x40, 0x1C, 0x80, 0xB2, 0xE8, 0x83, 0x49, 0x69, 0xE2, 0x88, - 0x0A, 0x54, 0xE8, 0x8B, 0x40, 0x1C, 0xE8, 0x83, 0x30, 0x7E, 0x40, 0x1C, 0xC0, 0xB2, 0x30, 0x76, - 0x0A, 0x28, 0x0B, 0xD2, 0x06, 0x48, 0x40, 0x30, 0xC1, 0x69, 0x49, 0x1C, 0xC1, 0x61, 0x04, 0x49, - 0x00, 0x9A, 0x40, 0x31, 0xC8, 0x69, 0x90, 0x42, 0x00, 0xD2, 0x2F, 0xE7, 0xF8, 0xBD, 0x00, 0x00, - 0x64, 0x01, 0x00, 0x20, 0xF0, 0xB5, 0x00, 0x20, 0xF9, 0x4D, 0x93, 0xB0, 0x43, 0x1E, 0x02, 0x46, - 0x2C, 0x6A, 0x41, 0x00, 0x63, 0x52, 0x6C, 0x6A, 0x63, 0x52, 0x44, 0x1C, 0xA9, 0x6A, 0xA4, 0xB2, - 0x0A, 0x54, 0x20, 0x46, 0x0A, 0x2C, 0xF3, 0xD3, 0xF1, 0x48, 0x80, 0x38, 0x04, 0x46, 0x01, 0x7E, - 0x40, 0x34, 0xE1, 0x83, 0x89, 0xB2, 0x00, 0x29, 0x7C, 0xD0, 0x00, 0x22, 0x62, 0x83, 0xEA, 0x61, - 0xC7, 0x7C, 0x10, 0x46, 0xAE, 0x69, 0x0A, 0xE0, 0x42, 0x00, 0xB2, 0x5E, 0xBA, 0x42, 0x04, 0xDD, - 0x01, 0x22, 0x63, 0x8B, 0x82, 0x40, 0x1A, 0x43, 0x62, 0x83, 0x40, 0x1C, 0xE8, 0x61, 0x88, 0x42, - 0xF2, 0xDB, 0x00, 0x20, 0x07, 0x90, 0x60, 0x8B, 0x00, 0x22, 0x05, 0x90, 0x62, 0x83, 0x06, 0x92, - 0x01, 0x29, 0x18, 0xD1, 0x68, 0x69, 0x01, 0x78, 0x00, 0x29, 0x01, 0xD0, 0x49, 0x1E, 0x01, 0x70, - 0xDB, 0x4B, 0x41, 0x78, 0x80, 0x3B, 0x1E, 0x7C, 0xB1, 0x42, 0x01, 0xD2, 0x49, 0x1C, 0x41, 0x70, - 0x81, 0x78, 0x00, 0x29, 0x01, 0xD0, 0x49, 0x1E, 0x81, 0x70, 0xC1, 0x78, 0x5B, 0x7C, 0x99, 0x42, - 0x01, 0xD2, 0x49, 0x1C, 0xC1, 0x70, 0x00, 0x20, 0xE8, 0x61, 0xD2, 0x48, 0x12, 0x90, 0xD0, 0x48, - 0x20, 0x38, 0x11, 0x90, 0x60, 0xE3, 0x82, 0x04, 0xCD, 0x49, 0x12, 0x0C, 0x15, 0x46, 0x49, 0x69, - 0x11, 0x9B, 0x4E, 0x5D, 0x1E, 0x80, 0x52, 0x1C, 0x92, 0xB2, 0x10, 0x96, 0x8B, 0x5C, 0x11, 0x9D, - 0x52, 0x1C, 0x6B, 0x80, 0x92, 0xB2, 0x8F, 0x5C, 0x11, 0x9D, 0x52, 0x1C, 0xAF, 0x80, 0x92, 0xB2, - 0x0F, 0x97, 0x89, 0x5C, 0x11, 0x9A, 0x9C, 0x46, 0xD1, 0x80, 0x9A, 0x19, 0xD3, 0x0F, 0x9A, 0x18, - 0xC1, 0x4B, 0x0E, 0x91, 0x52, 0x10, 0x1A, 0x54, 0x79, 0x18, 0xCA, 0x0F, 0x51, 0x18, 0x49, 0x10, - 0x1A, 0x46, 0x0A, 0x32, 0x00, 0x23, 0x11, 0x54, 0x1E, 0x46, 0x1D, 0x46, 0x23, 0xE0, 0x10, 0x98, - 0x82, 0xB2, 0x1C, 0xE0, 0xB6, 0x48, 0xB6, 0x49, 0x80, 0x38, 0x00, 0x7C, 0x89, 0x68, 0x80, 0x1C, - 0x78, 0x43, 0x80, 0x18, 0x00, 0x04, 0xC0, 0x0B, 0x08, 0x5E, 0xA0, 0x82, 0x10, 0x28, 0x02, 0xDA, - 0x00, 0x20, 0x01, 0xE0, 0x27, 0xE3, 0x10, 0x38, 0x60, 0x82, 0x00, 0xB2, 0x01, 0x46, 0x79, 0x43, - 0x8E, 0x19, 0x2D, 0x18, 0x51, 0x1C, 0x50, 0x43, 0x89, 0xB2, 0xC3, 0x18, 0x0A, 0x46, 0x62, 0x45, - 0xE0, 0xDD, 0x7F, 0x1C, 0xBF, 0xB2, 0x0E, 0x98, 0x87, 0x42, 0xD8, 0xDD, 0x10, 0x98, 0x80, 0xB2, - 0x5D, 0xE0, 0x0F, 0x99, 0x8F, 0xB2, 0xA2, 0x49, 0x04, 0x97, 0x80, 0x39, 0x09, 0x7C, 0x0D, 0x91, - 0x8A, 0x1C, 0x57, 0x43, 0x0C, 0x91, 0x39, 0x18, 0x8F, 0xB2, 0x0B, 0x92, 0x9C, 0x49, 0x7A, 0x00, - 0x89, 0x68, 0x0A, 0x91, 0x8A, 0x5E, 0x8E, 0x46, 0x52, 0x10, 0xE2, 0x82, 0x0C, 0x99, 0x7F, 0x1A, - 0xBF, 0x1E, 0x3F, 0x04, 0xFF, 0x0B, 0x71, 0x46, 0xC9, 0x5F, 0xA1, 0x82, 0x91, 0x42, 0x00, 0xDB, - 0x11, 0x46, 0xA1, 0x82, 0x10, 0x29, 0x01, 0xDA, 0x00, 0x21, 0x00, 0xE0, 0x10, 0x39, 0x61, 0x82, - 0x04, 0x99, 0x49, 0x1E, 0x8A, 0xB2, 0x12, 0x21, 0x61, 0x5E, 0x4A, 0x43, 0x92, 0x19, 0x6F, 0x18, - 0x02, 0x92, 0x41, 0x43, 0x0E, 0x9A, 0xCB, 0x18, 0x0B, 0x99, 0x92, 0xB2, 0x51, 0x43, 0x09, 0x18, - 0x8D, 0xB2, 0x0A, 0x9E, 0x69, 0x00, 0x71, 0x5E, 0x49, 0x10, 0xE1, 0x82, 0x0D, 0x9E, 0xAD, 0x19, - 0xAD, 0x1C, 0x2D, 0x04, 0x0A, 0x9E, 0xED, 0x0B, 0x75, 0x5F, 0xA5, 0x82, 0x8D, 0x42, 0x00, 0xDB, - 0x0D, 0x46, 0xA5, 0x82, 0x10, 0x2D, 0x02, 0xDA, 0x00, 0x21, 0x61, 0x82, 0x01, 0xE0, 0x10, 0x3D, - 0x65, 0x82, 0x52, 0x1C, 0x12, 0x21, 0x96, 0xB2, 0x61, 0x5E, 0x02, 0x46, 0x0D, 0x46, 0x75, 0x43, - 0x02, 0x9E, 0x40, 0x1C, 0xAE, 0x19, 0x7D, 0x18, 0x51, 0x43, 0x80, 0xB2, 0xCB, 0x18, 0x60, 0x45, - 0x9F, 0xDD, 0x0F, 0x98, 0x87, 0xB2, 0x54, 0xE0, 0x10, 0x98, 0x81, 0xB2, 0x70, 0x48, 0x03, 0x91, - 0x80, 0x38, 0x00, 0x7C, 0x80, 0x1C, 0x78, 0x43, 0x41, 0x18, 0x09, 0x90, 0x8A, 0xB2, 0x6C, 0x48, - 0x51, 0x00, 0x80, 0x68, 0x08, 0x90, 0x41, 0x5E, 0x52, 0x1E, 0x49, 0x10, 0x12, 0x04, 0xE1, 0x82, - 0xD2, 0x0B, 0x80, 0x5E, 0xA0, 0x82, 0x88, 0x42, 0x00, 0xDB, 0x08, 0x46, 0xA0, 0x82, 0x10, 0x28, - 0x01, 0xDA, 0x00, 0x20, 0x00, 0xE0, 0x10, 0x38, 0x60, 0x82, 0x03, 0x98, 0x40, 0x1E, 0x81, 0xB2, - 0x12, 0x20, 0x20, 0x5E, 0x02, 0x46, 0x7A, 0x43, 0x96, 0x19, 0x2A, 0x18, 0x01, 0x92, 0x62, 0x46, - 0x09, 0x9D, 0x92, 0xB2, 0x48, 0x43, 0xAD, 0x18, 0xA9, 0xB2, 0xC3, 0x18, 0x48, 0x00, 0x08, 0x9D, - 0x49, 0x1C, 0x28, 0x5E, 0x09, 0x04, 0x40, 0x10, 0xE0, 0x82, 0x08, 0x9D, 0xC9, 0x0B, 0x69, 0x5E, - 0xA1, 0x82, 0x81, 0x42, 0x00, 0xDB, 0x01, 0x46, 0xA1, 0x82, 0x10, 0x29, 0x02, 0xDA, 0x00, 0x20, - 0x60, 0x82, 0x01, 0xE0, 0x10, 0x39, 0x61, 0x82, 0x12, 0x20, 0x20, 0x5E, 0x01, 0x9D, 0x01, 0x46, - 0x79, 0x43, 0x52, 0x1C, 0x92, 0xB2, 0x2D, 0x18, 0x7F, 0x1C, 0x8E, 0x19, 0x50, 0x43, 0xBF, 0xB2, - 0xC3, 0x18, 0x0E, 0x98, 0x87, 0x42, 0xA7, 0xDD, 0x00, 0x2D, 0x00, 0xD1, 0x01, 0x25, 0x58, 0x02, - 0x29, 0x46, 0xF9, 0xF7, 0x4B, 0xFF, 0xFF, 0x38, 0x01, 0x38, 0x07, 0xB2, 0x70, 0x02, 0x29, 0x46, - 0xF9, 0xF7, 0x44, 0xFF, 0xFF, 0x38, 0x01, 0x38, 0x06, 0xB2, 0xFF, 0x20, 0x00, 0x01, 0x85, 0x42, - 0x01, 0xD3, 0xFF, 0x20, 0x05, 0xE0, 0x28, 0x11, 0x00, 0xB2, 0x00, 0x90, 0x01, 0x28, 0x01, 0xDA, - 0x01, 0x20, 0x00, 0x90, 0x00, 0x2F, 0x01, 0xDA, 0x00, 0x27, 0x04, 0xE0, 0x60, 0x89, 0x87, 0x42, - 0x01, 0xDB, 0x40, 0x1E, 0x07, 0xB2, 0x00, 0x2E, 0x00, 0xDA, 0x00, 0x26, 0xA5, 0x89, 0xAE, 0x42, - 0x01, 0xDB, 0x68, 0x1E, 0x06, 0xB2, 0x12, 0x98, 0x00, 0x7B, 0x40, 0x09, 0x5E, 0xD1, 0x2C, 0x4A, - 0x26, 0x20, 0x80, 0x3A, 0x10, 0x5E, 0x03, 0x21, 0x09, 0x02, 0x43, 0x18, 0x9F, 0x42, 0x0F, 0xDA, - 0x87, 0x42, 0x0D, 0xDB, 0xC3, 0x1B, 0x5B, 0x18, 0x5D, 0x00, 0x5B, 0x19, 0xDD, 0x0F, 0xEB, 0x18, - 0x5B, 0x10, 0xC3, 0x1A, 0x5B, 0x18, 0x1F, 0xB2, 0x87, 0x42, 0x16, 0xDA, 0x07, 0x46, 0x14, 0xE0, - 0x2A, 0x20, 0x10, 0x5E, 0x43, 0x1A, 0x9F, 0x42, 0x0F, 0xDD, 0x87, 0x42, 0x0D, 0xDA, 0x3B, 0x1A, - 0x5B, 0x18, 0x5D, 0x00, 0x5B, 0x19, 0xDD, 0x0F, 0xEB, 0x18, 0x5B, 0x10, 0x1B, 0x18, 0x5B, 0x1A, - 0x1F, 0xB2, 0x87, 0x42, 0x01, 0xDB, 0x40, 0x1E, 0x07, 0xB2, 0x28, 0x20, 0x10, 0x5E, 0x43, 0x18, - 0x9E, 0x42, 0x0F, 0xDA, 0x86, 0x42, 0x0D, 0xDB, 0x82, 0x1B, 0x52, 0x18, 0x53, 0x00, 0xD2, 0x18, - 0xD3, 0x0F, 0x9A, 0x18, 0x52, 0x10, 0x82, 0x1A, 0x51, 0x18, 0x0E, 0xB2, 0x86, 0x42, 0x00, 0xDA, - 0x06, 0x46, 0xBB, 0xE1, 0x2C, 0x20, 0x10, 0x5E, 0x42, 0x1A, 0x96, 0x42, 0xF9, 0xDD, 0x86, 0x42, - 0xF7, 0xDA, 0x32, 0x1A, 0x52, 0x18, 0x53, 0x00, 0xD2, 0x18, 0xD3, 0x0F, 0x9A, 0x18, 0x52, 0x10, - 0x12, 0x18, 0x51, 0x1A, 0x0E, 0xB2, 0x86, 0x42, 0xEB, 0xDB, 0x40, 0x1E, 0xA5, 0xE1, 0x00, 0x00, - 0xA4, 0x01, 0x00, 0x20, 0x14, 0x04, 0x00, 0x20, 0xEA, 0x06, 0x00, 0x20, 0x12, 0x98, 0x00, 0x7B, - 0x40, 0x09, 0x01, 0x28, 0x7E, 0xD1, 0xE1, 0x48, 0x26, 0x25, 0x45, 0x5F, 0x01, 0x20, 0x80, 0x02, - 0x28, 0x18, 0x87, 0x42, 0x2F, 0xDA, 0xAF, 0x42, 0x2D, 0xDB, 0xE8, 0x1B, 0x01, 0x27, 0xBF, 0x02, - 0xC0, 0x19, 0x80, 0xB2, 0xB9, 0x10, 0x88, 0x42, 0x07, 0xD8, 0x06, 0x21, 0x48, 0x43, 0x05, 0x21, - 0xF9, 0xF7, 0xA4, 0xFE, 0x28, 0x1A, 0xC0, 0x19, 0x18, 0xE0, 0x01, 0x21, 0x49, 0x02, 0x88, 0x42, - 0x09, 0xD8, 0xD3, 0x49, 0x80, 0x00, 0x40, 0x18, 0x03, 0x21, 0xF9, 0xF7, 0xA1, 0xFE, 0xD1, 0x49, - 0x28, 0x1A, 0x40, 0x18, 0x0A, 0xE0, 0xFF, 0x38, 0xFF, 0x38, 0x02, 0x38, 0x16, 0x21, 0x48, 0x43, - 0x0F, 0x21, 0xF9, 0xF7, 0x95, 0xFE, 0x28, 0x1A, 0xFF, 0x30, 0x79, 0x30, 0x07, 0xB2, 0xAF, 0x42, - 0x39, 0xDA, 0x2F, 0x46, 0x37, 0xE0, 0xC5, 0x49, 0x2A, 0x25, 0x4D, 0x5F, 0x01, 0x21, 0x89, 0x02, - 0x6A, 0x1A, 0x97, 0x42, 0x2F, 0xDD, 0xAF, 0x42, 0x2D, 0xDA, 0x78, 0x1B, 0x40, 0x18, 0x0F, 0x46, - 0x80, 0xB2, 0x89, 0x10, 0x88, 0x42, 0x07, 0xD8, 0x06, 0x21, 0x48, 0x43, 0x05, 0x21, 0xF9, 0xF7, - 0x6D, 0xFE, 0x40, 0x19, 0xC0, 0x1B, 0x19, 0xE0, 0x01, 0x21, 0x49, 0x02, 0x88, 0x42, 0x0A, 0xD8, - 0xB7, 0x49, 0x80, 0x00, 0x40, 0x18, 0x03, 0x21, 0xF9, 0xF7, 0x6A, 0xFE, 0xB5, 0x49, 0x40, 0x19, - 0x49, 0x42, 0x40, 0x18, 0x0A, 0xE0, 0xFF, 0x38, 0xFF, 0x38, 0x02, 0x38, 0x16, 0x21, 0x48, 0x43, - 0x0F, 0x21, 0xF9, 0xF7, 0x5D, 0xFE, 0x40, 0x19, 0xFF, 0x38, 0x79, 0x38, 0x07, 0xB2, 0xAF, 0x42, - 0x01, 0xDB, 0x6D, 0x1E, 0x2F, 0xB2, 0xA9, 0x49, 0x28, 0x25, 0x4D, 0x5F, 0x01, 0x20, 0x80, 0x02, - 0x2A, 0x18, 0x96, 0x42, 0x31, 0xDA, 0xAE, 0x42, 0x2F, 0xDB, 0xA9, 0x1B, 0x06, 0x46, 0x08, 0x18, - 0x80, 0xB2, 0x00, 0xE0, 0x60, 0xE0, 0xFF, 0x21, 0x01, 0x31, 0x88, 0x42, 0x07, 0xD8, 0x06, 0x21, - 0x48, 0x43, 0x05, 0x21, 0xF9, 0xF7, 0x32, 0xFE, 0x28, 0x1A, 0x80, 0x19, 0x18, 0xE0, 0x01, 0x21, - 0x49, 0x02, 0x88, 0x42, 0x09, 0xD8, 0x9A, 0x49, 0x80, 0x00, 0x40, 0x18, 0x03, 0x21, 0xF9, 0xF7, - 0x2F, 0xFE, 0x98, 0x49, 0x28, 0x1A, 0x40, 0x18, 0x0A, 0xE0, 0xFF, 0x38, 0xFF, 0x38, 0x02, 0x38, - 0x16, 0x21, 0x48, 0x43, 0x0F, 0x21, 0xF9, 0xF7, 0x23, 0xFE, 0x28, 0x1A, 0xFF, 0x30, 0x79, 0x30, - 0x06, 0xB2, 0xAE, 0x42, 0x00, 0xDA, 0x2E, 0x46, 0xF0, 0xE0, 0x2C, 0x25, 0x4D, 0x5F, 0x29, 0x1A, - 0x8E, 0x42, 0xF9, 0xDD, 0xAE, 0x42, 0xF7, 0xDA, 0x71, 0x1B, 0x06, 0x46, 0x08, 0x18, 0xFF, 0x21, - 0x80, 0xB2, 0x01, 0x31, 0x88, 0x42, 0x07, 0xD8, 0x06, 0x21, 0x48, 0x43, 0x05, 0x21, 0xF9, 0xF7, - 0xFD, 0xFD, 0x40, 0x19, 0x80, 0x1B, 0x19, 0xE0, 0x01, 0x21, 0x49, 0x02, 0x88, 0x42, 0x0A, 0xD8, - 0x7F, 0x49, 0x80, 0x00, 0x40, 0x18, 0x03, 0x21, 0xF9, 0xF7, 0xFA, 0xFD, 0x7D, 0x49, 0x40, 0x19, - 0x49, 0x42, 0x40, 0x18, 0x0A, 0xE0, 0xFF, 0x38, 0xFF, 0x38, 0x02, 0x38, 0x16, 0x21, 0x48, 0x43, - 0x0F, 0x21, 0xF9, 0xF7, 0xED, 0xFD, 0x40, 0x19, 0xFF, 0x38, 0x79, 0x38, 0x06, 0xB2, 0xAE, 0x42, - 0xCA, 0xDB, 0x6D, 0x1E, 0x2E, 0xB2, 0xB9, 0xE0, 0x12, 0x98, 0x00, 0x7B, 0x40, 0x09, 0x02, 0x28, - 0x40, 0xD1, 0xFF, 0x3F, 0x01, 0x3F, 0x38, 0xB2, 0x00, 0x28, 0x01, 0xDA, 0x00, 0x20, 0x07, 0xE0, - 0x61, 0x89, 0xCA, 0x1F, 0xFF, 0x3A, 0xFA, 0x3A, 0x90, 0x42, 0x01, 0xDB, 0x51, 0x1E, 0x08, 0xB2, - 0x61, 0x89, 0x48, 0x43, 0xFF, 0x39, 0xFF, 0x39, 0x02, 0x39, 0xF9, 0xF7, 0xBF, 0xFD, 0xFF, 0x36, - 0x07, 0xB2, 0x01, 0x36, 0x01, 0x21, 0x30, 0xB2, 0x89, 0x02, 0x88, 0x42, 0x0C, 0xDA, 0x08, 0x1A, - 0x0E, 0x22, 0x50, 0x43, 0xC2, 0x17, 0x52, 0x0F, 0x10, 0x18, 0xC0, 0x10, 0x08, 0x1A, 0x00, 0xB2, - 0x00, 0x28, 0x13, 0xDA, 0x00, 0x20, 0x11, 0xE0, 0x27, 0x21, 0x49, 0x02, 0x88, 0x42, 0x0D, 0xDD, - 0x40, 0x1A, 0x0E, 0x22, 0x50, 0x43, 0xC2, 0x17, 0x52, 0x0F, 0x10, 0x18, 0xC0, 0x10, 0x40, 0x18, - 0x29, 0x21, 0x00, 0xB2, 0x49, 0x02, 0x88, 0x42, 0x00, 0xDB, 0x48, 0x1E, 0x68, 0x43, 0x29, 0x21, - 0x49, 0x02, 0x70, 0xE0, 0x12, 0x98, 0x00, 0x7B, 0x40, 0x09, 0x03, 0x28, 0x25, 0xD1, 0xFF, 0x3F, - 0x01, 0x3F, 0x38, 0xB2, 0x00, 0x28, 0x01, 0xDA, 0x00, 0x20, 0x07, 0xE0, 0x61, 0x89, 0xCA, 0x1F, - 0xFF, 0x3A, 0xFA, 0x3A, 0x90, 0x42, 0x01, 0xDB, 0x51, 0x1E, 0x08, 0xB2, 0x61, 0x89, 0x48, 0x43, - 0xFF, 0x39, 0xFF, 0x39, 0x02, 0x39, 0xF9, 0xF7, 0x79, 0xFD, 0xFF, 0x3E, 0x07, 0xB2, 0x01, 0x3E, - 0x30, 0xB2, 0x00, 0x28, 0x00, 0xDA, 0x00, 0x20, 0xE9, 0x1F, 0xFF, 0x39, 0xFA, 0x39, 0x88, 0x42, - 0x01, 0xDB, 0x48, 0x1E, 0x00, 0xB2, 0x68, 0x43, 0x45, 0xE0, 0x12, 0x98, 0x00, 0x7B, 0x40, 0x09, - 0x04, 0x28, 0x43, 0xD1, 0xFF, 0x3F, 0x01, 0x3F, 0x38, 0xB2, 0x00, 0x28, 0x01, 0xDA, 0x00, 0x20, - 0x07, 0xE0, 0x61, 0x89, 0xCA, 0x1F, 0xFF, 0x3A, 0xFA, 0x3A, 0x90, 0x42, 0x01, 0xDB, 0x51, 0x1E, - 0x08, 0xB2, 0x61, 0x89, 0x48, 0x43, 0xFF, 0x39, 0xFF, 0x39, 0x02, 0x39, 0xF9, 0xF7, 0x4E, 0xFD, - 0xFF, 0x36, 0xFF, 0x36, 0x07, 0xB2, 0x02, 0x36, 0x05, 0x21, 0x30, 0xB2, 0x09, 0x02, 0x88, 0x42, - 0x0C, 0xDA, 0x08, 0x1A, 0xC2, 0x00, 0x80, 0x18, 0xC2, 0x17, 0x92, 0x0F, 0x10, 0x18, 0x80, 0x10, - 0x08, 0x1A, 0x00, 0xB2, 0x00, 0x28, 0x13, 0xDA, 0x00, 0x20, 0x11, 0xE0, 0x4F, 0x21, 0x09, 0x02, - 0x88, 0x42, 0x0D, 0xDD, 0x40, 0x1A, 0xC2, 0x00, 0x80, 0x18, 0xC2, 0x17, 0x92, 0x0F, 0x10, 0x18, - 0x80, 0x10, 0x40, 0x18, 0x15, 0x21, 0x00, 0xB2, 0x89, 0x02, 0x88, 0x42, 0x00, 0xDB, 0x48, 0x1E, - 0x15, 0x21, 0x68, 0x43, 0x89, 0x02, 0xF9, 0xF7, 0x21, 0xFD, 0x06, 0xB2, 0x13, 0x4A, 0x06, 0x98, - 0x80, 0x32, 0x11, 0x6A, 0x40, 0x00, 0x00, 0x9B, 0x0F, 0x52, 0x57, 0x6A, 0x06, 0x99, 0x3E, 0x52, - 0x4D, 0x1C, 0xE8, 0xB2, 0x96, 0x6A, 0x06, 0x90, 0x07, 0x9D, 0x73, 0x54, 0x01, 0x20, 0x05, 0x99, - 0xA8, 0x40, 0x08, 0x40, 0x63, 0x8B, 0x07, 0x99, 0x18, 0x43, 0x49, 0x1C, 0x60, 0x83, 0xC8, 0xB2, - 0x07, 0x90, 0xD0, 0x69, 0x40, 0x1C, 0xD0, 0x61, 0x04, 0x49, 0xE2, 0x8B, 0x80, 0x31, 0xC8, 0x69, - 0x90, 0x42, 0x00, 0xDA, 0x97, 0xE4, 0x13, 0xB0, 0xF0, 0xBD, 0x00, 0x00, 0x24, 0x01, 0x00, 0x20, - 0x00, 0xFC, 0xFF, 0xFF, 0xCD, 0x02, 0x00, 0x00, 0xF0, 0xB5, 0x1E, 0x4B, 0x00, 0x20, 0x19, 0x7C, - 0x5A, 0x7C, 0x89, 0x1C, 0x52, 0x1C, 0x51, 0x43, 0x02, 0x22, 0x1E, 0x46, 0x04, 0x46, 0x80, 0x36, - 0x0B, 0xE0, 0x35, 0x69, 0x0B, 0x18, 0x2A, 0x54, 0x35, 0x69, 0xEA, 0x54, 0xB7, 0x68, 0x45, 0x00, - 0x7C, 0x53, 0x5B, 0x00, 0xB5, 0x68, 0x40, 0x1C, 0xEC, 0x52, 0x12, 0x4B, 0x1B, 0x7C, 0x9B, 0x1C, - 0x98, 0x42, 0xEE, 0xDB, 0x0F, 0x4F, 0x38, 0x7C, 0x06, 0xE0, 0x33, 0x69, 0x45, 0x00, 0x1A, 0x54, - 0xB3, 0x68, 0x5C, 0x53, 0x3B, 0x7C, 0xC0, 0x18, 0x80, 0x1C, 0x88, 0x42, 0xF5, 0xDB, 0x38, 0x7C, - 0x7B, 0x7C, 0x81, 0x1C, 0x9B, 0x1C, 0x40, 0x00, 0x59, 0x43, 0xC0, 0x1C, 0x07, 0xE0, 0x33, 0x69, - 0x45, 0x00, 0x1A, 0x54, 0xB3, 0x68, 0x5C, 0x53, 0x3B, 0x7C, 0xC0, 0x18, 0x80, 0x1C, 0x88, 0x42, - 0xF5, 0xDB, 0xF0, 0xBD, 0x24, 0x01, 0x00, 0x20, 0xF0, 0xB5, 0x87, 0xB0, 0x00, 0x20, 0x04, 0x90, - 0xFF, 0x48, 0x04, 0x78, 0xFF, 0x48, 0x05, 0x68, 0xFF, 0x48, 0x00, 0x78, 0xFF, 0x4E, 0x36, 0x78, - 0x70, 0x43, 0x40, 0x00, 0xFB, 0x4E, 0x36, 0x68, 0x80, 0x19, 0x03, 0x90, 0x00, 0x21, 0xE1, 0xE0, - 0x00, 0x20, 0x06, 0x90, 0x05, 0x90, 0xFA, 0x48, 0x00, 0x78, 0x48, 0x43, 0x03, 0x46, 0x00, 0x22, - 0x18, 0xE0, 0x98, 0x18, 0x40, 0x00, 0x28, 0x5E, 0xA0, 0x42, 0x06, 0xDD, 0x98, 0x18, 0x40, 0x00, - 0x28, 0x5E, 0x06, 0x9E, 0x80, 0x19, 0x06, 0x90, 0x0B, 0xE0, 0x98, 0x18, 0x40, 0x00, 0x28, 0x5E, - 0x66, 0x42, 0xB0, 0x42, 0x05, 0xDA, 0x98, 0x18, 0x40, 0x00, 0x28, 0x5E, 0x05, 0x9E, 0x30, 0x1A, - 0x05, 0x90, 0x52, 0x1C, 0xEA, 0x48, 0x00, 0x78, 0x82, 0x42, 0xE2, 0xDB, 0xE9, 0x48, 0x06, 0x78, - 0xE7, 0x48, 0x00, 0x78, 0x46, 0x43, 0xE8, 0x48, 0x00, 0x78, 0x48, 0x43, 0x33, 0x18, 0x00, 0x22, - 0x18, 0xE0, 0x98, 0x18, 0x40, 0x00, 0x28, 0x5E, 0xA0, 0x42, 0x06, 0xDD, 0x98, 0x18, 0x40, 0x00, - 0x28, 0x5E, 0x06, 0x9E, 0x80, 0x19, 0x06, 0x90, 0x0B, 0xE0, 0x98, 0x18, 0x40, 0x00, 0x28, 0x5E, - 0x66, 0x42, 0xB0, 0x42, 0x05, 0xDA, 0x98, 0x18, 0x40, 0x00, 0x28, 0x5E, 0x05, 0x9E, 0x30, 0x1A, - 0x05, 0x90, 0x52, 0x1C, 0xD8, 0x48, 0x00, 0x78, 0x82, 0x42, 0xE2, 0xDB, 0xD7, 0x48, 0x00, 0x78, - 0x48, 0x43, 0x03, 0x46, 0x00, 0x22, 0x1C, 0xE0, 0x98, 0x18, 0x40, 0x00, 0x03, 0x9E, 0x30, 0x5E, - 0xA0, 0x42, 0x07, 0xDD, 0x98, 0x18, 0x40, 0x00, 0x03, 0x9E, 0x30, 0x5E, 0x06, 0x9E, 0x80, 0x19, - 0x06, 0x90, 0x0D, 0xE0, 0x98, 0x18, 0x40, 0x00, 0x03, 0x9E, 0x30, 0x5E, 0x66, 0x42, 0xB0, 0x42, - 0x06, 0xDA, 0x98, 0x18, 0x40, 0x00, 0x03, 0x9E, 0x30, 0x5E, 0x05, 0x9E, 0x30, 0x1A, 0x05, 0x90, - 0x52, 0x1C, 0xC6, 0x48, 0x00, 0x78, 0x82, 0x42, 0xDE, 0xDB, 0xC2, 0x48, 0x06, 0x78, 0xC3, 0x48, - 0x00, 0x78, 0x46, 0x43, 0xC2, 0x48, 0x00, 0x78, 0x48, 0x43, 0x33, 0x18, 0x00, 0x22, 0x1C, 0xE0, - 0x98, 0x18, 0x46, 0x00, 0x03, 0x98, 0x80, 0x5F, 0xA0, 0x42, 0x07, 0xDD, 0x98, 0x18, 0x40, 0x00, - 0x03, 0x9E, 0x30, 0x5E, 0x06, 0x9E, 0x80, 0x19, 0x06, 0x90, 0x0D, 0xE0, 0x98, 0x18, 0x40, 0x00, - 0x03, 0x9E, 0x30, 0x5E, 0x66, 0x42, 0xB0, 0x42, 0x06, 0xDA, 0x98, 0x18, 0x40, 0x00, 0x03, 0x9E, - 0x30, 0x5E, 0x05, 0x9E, 0x30, 0x1A, 0x05, 0x90, 0x52, 0x1C, 0xB1, 0x48, 0x00, 0x78, 0x82, 0x42, - 0xDE, 0xDB, 0x48, 0x00, 0xAF, 0x4E, 0x30, 0x5E, 0x06, 0x9E, 0x80, 0x1B, 0x06, 0x90, 0x48, 0x00, - 0xAD, 0x4E, 0x30, 0x5E, 0x05, 0x9E, 0x80, 0x1B, 0x05, 0x90, 0x4E, 0x00, 0xA9, 0x4F, 0xBE, 0x5F, - 0x00, 0x2E, 0x13, 0xDD, 0x4E, 0x00, 0xBE, 0x5F, 0xF7, 0x0F, 0x00, 0x96, 0xBE, 0x19, 0x76, 0x10, - 0x06, 0x9F, 0xBE, 0x42, 0x22, 0xDB, 0x4E, 0x00, 0xA2, 0x4F, 0xBE, 0x5F, 0xF7, 0x0F, 0x01, 0x96, - 0xBE, 0x19, 0x76, 0x10, 0x76, 0x42, 0x06, 0x9F, 0xBE, 0x42, 0x17, 0xDC, 0x4E, 0x00, 0x9E, 0x4F, - 0xBE, 0x5F, 0x00, 0x2E, 0x15, 0xDD, 0x4E, 0x00, 0xBE, 0x5F, 0xF7, 0x0F, 0x02, 0x96, 0xBE, 0x19, - 0x76, 0x10, 0x05, 0x9F, 0xBE, 0x42, 0x09, 0xDB, 0x4E, 0x00, 0x97, 0x4F, 0xB8, 0x5F, 0xC6, 0x0F, - 0x36, 0x18, 0x76, 0x10, 0x76, 0x42, 0x05, 0x9F, 0xBE, 0x42, 0x02, 0xDD, 0x04, 0x98, 0x40, 0x1C, - 0x04, 0x90, 0x49, 0x1C, 0x8B, 0x48, 0x00, 0x78, 0x81, 0x42, 0x00, 0xDA, 0x18, 0xE7, 0x00, 0x21, - 0x34, 0xE1, 0x00, 0x20, 0x06, 0x90, 0x05, 0x90, 0x85, 0x48, 0x00, 0x78, 0x86, 0x4E, 0x36, 0x78, - 0x86, 0x19, 0x84, 0x48, 0x00, 0x78, 0x46, 0x43, 0x81, 0x48, 0x00, 0x78, 0x48, 0x43, 0x33, 0x18, - 0x00, 0x22, 0x18, 0xE0, 0x98, 0x18, 0x40, 0x00, 0x28, 0x5E, 0xA0, 0x42, 0x06, 0xDD, 0x98, 0x18, - 0x40, 0x00, 0x2E, 0x5E, 0x06, 0x98, 0x30, 0x18, 0x06, 0x90, 0x0B, 0xE0, 0x98, 0x18, 0x40, 0x00, - 0x28, 0x5E, 0x66, 0x42, 0xB0, 0x42, 0x05, 0xDA, 0x98, 0x18, 0x40, 0x00, 0x28, 0x5E, 0x05, 0x9E, - 0x30, 0x1A, 0x05, 0x90, 0x52, 0x1C, 0x72, 0x48, 0x00, 0x78, 0x82, 0x42, 0xE2, 0xDB, 0x70, 0x48, - 0x00, 0x78, 0x71, 0x4E, 0x36, 0x78, 0x86, 0x19, 0x6E, 0x48, 0x00, 0x78, 0x46, 0x43, 0x73, 0x48, - 0x00, 0x78, 0x6B, 0x4F, 0x3F, 0x78, 0x78, 0x43, 0x36, 0x18, 0x6B, 0x48, 0x00, 0x78, 0x48, 0x43, - 0x33, 0x18, 0x00, 0x22, 0x18, 0xE0, 0x98, 0x18, 0x40, 0x00, 0x28, 0x5E, 0xA0, 0x42, 0x06, 0xDD, - 0x98, 0x18, 0x40, 0x00, 0x28, 0x5E, 0x06, 0x9E, 0x80, 0x19, 0x06, 0x90, 0x0B, 0xE0, 0x98, 0x18, - 0x40, 0x00, 0x28, 0x5E, 0x66, 0x42, 0xB0, 0x42, 0x05, 0xDA, 0x98, 0x18, 0x40, 0x00, 0x28, 0x5E, - 0x05, 0x9E, 0x30, 0x1A, 0x05, 0x90, 0x52, 0x1C, 0x5B, 0x48, 0x00, 0x78, 0x82, 0x42, 0xE2, 0xDB, - 0x5A, 0x48, 0x00, 0x78, 0x5A, 0x4E, 0x36, 0x78, 0x86, 0x19, 0x56, 0x48, 0x00, 0x78, 0x46, 0x43, - 0x56, 0x48, 0x00, 0x78, 0x48, 0x43, 0x33, 0x18, 0x00, 0x22, 0x1C, 0xE0, 0x98, 0x18, 0x40, 0x00, - 0x03, 0x9E, 0x30, 0x5E, 0xA0, 0x42, 0x07, 0xDD, 0x98, 0x18, 0x40, 0x00, 0x03, 0x9E, 0x30, 0x5E, - 0x06, 0x9E, 0x80, 0x19, 0x06, 0x90, 0x0D, 0xE0, 0x98, 0x18, 0x40, 0x00, 0x03, 0x9E, 0x30, 0x5E, - 0x66, 0x42, 0xB0, 0x42, 0x06, 0xDA, 0x98, 0x18, 0x46, 0x00, 0x03, 0x98, 0x80, 0x5F, 0x05, 0x9E, - 0x30, 0x1A, 0x05, 0x90, 0x52, 0x1C, 0x45, 0x48, 0x00, 0x78, 0x82, 0x42, 0xDE, 0xDB, 0x43, 0x48, - 0x00, 0x78, 0x43, 0x4E, 0x36, 0x78, 0x86, 0x19, 0x3E, 0x48, 0x00, 0x78, 0x46, 0x43, 0x43, 0x48, - 0x00, 0x78, 0x3E, 0x4F, 0x3F, 0x78, 0x78, 0x43, 0x36, 0x18, 0x3D, 0x48, 0x00, 0x78, 0x48, 0x43, - 0x33, 0x18, 0x00, 0x22, 0x1C, 0xE0, 0x98, 0x18, 0x46, 0x00, 0x03, 0x98, 0x80, 0x5F, 0xA0, 0x42, - 0x07, 0xDD, 0x98, 0x18, 0x46, 0x00, 0x03, 0x98, 0x80, 0x5F, 0x06, 0x9E, 0x80, 0x19, 0x06, 0x90, - 0x0D, 0xE0, 0x98, 0x18, 0x40, 0x00, 0x03, 0x9E, 0x30, 0x5E, 0x66, 0x42, 0xB0, 0x42, 0x06, 0xDA, - 0x98, 0x18, 0x46, 0x00, 0x03, 0x98, 0x80, 0x5F, 0x05, 0x9E, 0x30, 0x1A, 0x05, 0x90, 0x52, 0x1C, - 0x2B, 0x48, 0x00, 0x78, 0x82, 0x42, 0xDE, 0xDB, 0x26, 0x48, 0x00, 0x78, 0x08, 0x18, 0x40, 0x00, - 0x28, 0x4E, 0x30, 0x5E, 0x06, 0x9E, 0x80, 0x1B, 0x06, 0x90, 0x22, 0x48, 0x00, 0x78, 0x08, 0x18, - 0x40, 0x00, 0x25, 0x4E, 0x30, 0x5E, 0x05, 0x9E, 0x80, 0x1B, 0x05, 0x90, 0x1D, 0x4E, 0x36, 0x78, - 0x8E, 0x19, 0x76, 0x00, 0x1F, 0x4F, 0xBE, 0x5F, 0x00, 0x2E, 0x19, 0xDD, 0x19, 0x4E, 0x36, 0x78, - 0x8E, 0x19, 0x76, 0x00, 0xBE, 0x5F, 0xF7, 0x0F, 0x00, 0x96, 0xBE, 0x19, 0x76, 0x10, 0x06, 0x9F, - 0xBE, 0x42, 0x47, 0xDB, 0x13, 0x4E, 0x36, 0x78, 0x8E, 0x19, 0x76, 0x00, 0x15, 0x4F, 0xBE, 0x5F, - 0xF7, 0x0F, 0x01, 0x96, 0xBE, 0x19, 0x76, 0x10, 0x76, 0x42, 0x06, 0x9F, 0xBE, 0x42, 0x39, 0xDC, - 0x0C, 0x4E, 0x36, 0x78, 0x8E, 0x19, 0x76, 0x00, 0x0F, 0x4F, 0xBE, 0x5F, 0x00, 0x2E, 0x34, 0xDD, - 0x08, 0x4E, 0x36, 0x78, 0x8E, 0x19, 0x76, 0x00, 0xBE, 0x5F, 0xF7, 0x0F, 0x02, 0x96, 0x17, 0xE0, - 0x38, 0x01, 0x00, 0x20, 0xA8, 0x01, 0x00, 0x20, 0x34, 0x01, 0x00, 0x20, 0x2C, 0x01, 0x00, 0x20, - 0x2D, 0x01, 0x00, 0x20, 0x32, 0x01, 0x00, 0x20, 0x2E, 0x01, 0x00, 0x20, 0x30, 0x01, 0x00, 0x20, - 0x31, 0x01, 0x00, 0x20, 0xC4, 0x04, 0x00, 0x20, 0x04, 0x05, 0x00, 0x20, 0x33, 0x01, 0x00, 0x20, - 0xBE, 0x19, 0x76, 0x10, 0x05, 0x9F, 0xBE, 0x42, 0x0C, 0xDB, 0x11, 0x4E, 0x36, 0x78, 0x8E, 0x19, - 0x76, 0x00, 0x10, 0x4F, 0xB8, 0x5F, 0xC6, 0x0F, 0x36, 0x18, 0x76, 0x10, 0x76, 0x42, 0x05, 0x9F, - 0xBE, 0x42, 0x02, 0xDD, 0x04, 0x98, 0x40, 0x1C, 0x04, 0x90, 0x49, 0x1C, 0x0A, 0x48, 0x00, 0x78, - 0x81, 0x42, 0x00, 0xDA, 0xC5, 0xE6, 0x09, 0x4E, 0x30, 0x78, 0xC6, 0x0F, 0x36, 0x18, 0x76, 0x10, - 0x04, 0x9F, 0xBE, 0x42, 0x02, 0xDA, 0x00, 0x20, 0x07, 0xB0, 0xF0, 0xBD, 0x01, 0x20, 0xFB, 0xE7, - 0x32, 0x01, 0x00, 0x20, 0x04, 0x05, 0x00, 0x20, 0x33, 0x01, 0x00, 0x20, 0xCC, 0x00, 0x00, 0x20, - 0xC1, 0x06, 0xC9, 0x0E, 0x01, 0x20, 0x88, 0x40, 0x01, 0x49, 0x08, 0x60, 0x70, 0x47, 0x00, 0x00, - 0x80, 0xE1, 0x00, 0xE0, 0xC2, 0x06, 0xD2, 0x0E, 0x01, 0x21, 0x91, 0x40, 0x01, 0x4A, 0x11, 0x60, - 0x70, 0x47, 0x00, 0x00, 0x80, 0xE1, 0x00, 0xE0, 0xC2, 0x06, 0xD2, 0x0E, 0x01, 0x21, 0x91, 0x40, - 0x01, 0x4A, 0x11, 0x60, 0x70, 0x47, 0x00, 0x00, 0x80, 0xE1, 0x00, 0xE0, 0xC1, 0x06, 0xC9, 0x0E, - 0x01, 0x20, 0x88, 0x40, 0x01, 0x49, 0x08, 0x60, 0x70, 0x47, 0x00, 0x00, 0x00, 0xE1, 0x00, 0xE0, - 0xC2, 0x06, 0xD2, 0x0E, 0x01, 0x21, 0x91, 0x40, 0x01, 0x4A, 0x11, 0x60, 0x70, 0x47, 0x00, 0x00, - 0x00, 0xE1, 0x00, 0xE0, 0x83, 0x07, 0xFF, 0x22, 0xDB, 0x0E, 0x9A, 0x40, 0x89, 0x07, 0x09, 0x0E, - 0x99, 0x40, 0x00, 0x28, 0x0B, 0xDA, 0x00, 0x07, 0x00, 0x0F, 0x08, 0x38, 0x83, 0x08, 0x08, 0x48, - 0x9B, 0x00, 0x18, 0x18, 0xC3, 0x69, 0x93, 0x43, 0x0B, 0x43, 0xC3, 0x61, 0x70, 0x47, 0x83, 0x08, - 0x04, 0x48, 0x9B, 0x00, 0x18, 0x18, 0x03, 0x68, 0x93, 0x43, 0x0B, 0x43, 0x03, 0x60, 0x70, 0x47, - 0x00, 0xED, 0x00, 0xE0, 0x00, 0xE4, 0x00, 0xE0, 0x10, 0xB5, 0x00, 0x28, 0x19, 0xDA, 0x1A, 0x4A, - 0x03, 0x07, 0x1B, 0x0F, 0x08, 0x3B, 0x9B, 0x08, 0x9B, 0x00, 0xD2, 0x58, 0x83, 0x07, 0xDC, 0x0E, - 0xFF, 0x23, 0xA3, 0x40, 0x9A, 0x43, 0x8B, 0x07, 0x1B, 0x0E, 0x84, 0x07, 0xE4, 0x0E, 0xA3, 0x40, - 0x1A, 0x43, 0x11, 0x4B, 0x04, 0x07, 0x24, 0x0F, 0x08, 0x3C, 0xA4, 0x08, 0xA4, 0x00, 0x1A, 0x51, - 0x18, 0xE0, 0x0E, 0x4A, 0x03, 0x23, 0x1B, 0x02, 0xD2, 0x18, 0x83, 0x08, 0x9B, 0x00, 0xD3, 0x58, - 0x82, 0x07, 0xD4, 0x0E, 0xFF, 0x22, 0xA2, 0x40, 0x93, 0x43, 0x8A, 0x07, 0x12, 0x0E, 0x84, 0x07, - 0xE4, 0x0E, 0xA2, 0x40, 0x13, 0x43, 0x05, 0x4A, 0x03, 0x24, 0x24, 0x02, 0x12, 0x19, 0x84, 0x08, - 0xA4, 0x00, 0x13, 0x51, 0x10, 0xBD, 0x00, 0x00, 0x1C, 0xED, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE0, - 0xF0, 0xB5, 0x19, 0x4D, 0x07, 0x20, 0x69, 0x6B, 0x85, 0xB0, 0x01, 0x26, 0x00, 0x24, 0x09, 0x27, - 0x08, 0x70, 0x7F, 0x02, 0x00, 0x21, 0x03, 0x22, 0x04, 0x92, 0x02, 0x91, 0x03, 0x91, 0x0A, 0x46, - 0x69, 0x6B, 0x01, 0x92, 0x0B, 0x46, 0x00, 0x91, 0x72, 0x1C, 0x39, 0x46, 0xA0, 0x20, 0xFD, 0xF7, - 0x37, 0xFE, 0x68, 0x6B, 0x64, 0x1C, 0x01, 0x78, 0xE4, 0xB2, 0x0F, 0x31, 0x01, 0x70, 0x04, 0x2C, - 0xE8, 0xD3, 0x00, 0x21, 0x03, 0x22, 0x04, 0x92, 0x02, 0x91, 0x03, 0x91, 0x0A, 0x46, 0x69, 0x6B, - 0x01, 0x92, 0x0B, 0x46, 0x00, 0x91, 0x01, 0x22, 0x04, 0x49, 0xA0, 0x20, 0xFD, 0xF7, 0x20, 0xFE, - 0x01, 0x20, 0x05, 0xB0, 0xF0, 0xBD, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x20, 0x01, 0x12, 0x00, 0x00, - 0x04, 0x48, 0xC1, 0x79, 0x10, 0x29, 0x03, 0xD1, 0x11, 0x21, 0xC1, 0x71, 0x01, 0x20, 0x70, 0x47, - 0x00, 0x20, 0x70, 0x47, 0x80, 0x03, 0x00, 0x20, 0x10, 0xB5, 0x07, 0x48, 0x00, 0x68, 0x40, 0x21, - 0x88, 0x43, 0x40, 0x30, 0x04, 0x49, 0x08, 0x60, 0x04, 0x48, 0x00, 0x68, 0x00, 0x28, 0x02, 0xD0, - 0x02, 0x48, 0x00, 0x68, 0x80, 0x47, 0x10, 0xBD, 0x00, 0x02, 0x00, 0x50, 0x18, 0x01, 0x00, 0x20, - 0xF8, 0xB5, 0x00, 0x21, 0x02, 0x20, 0xFC, 0xF7, 0x25, 0xFF, 0x01, 0xF0, 0xCB, 0xFA, 0x66, 0x4C, - 0x20, 0x7B, 0x66, 0x4D, 0xC0, 0x06, 0x80, 0x0F, 0x01, 0x28, 0x02, 0xD1, 0x68, 0x78, 0x01, 0x28, - 0x01, 0xD1, 0xFB, 0xF7, 0x1B, 0xFC, 0x01, 0x20, 0x00, 0x05, 0xFB, 0xF7, 0x61, 0xFF, 0x05, 0x20, - 0x00, 0x07, 0x41, 0x6B, 0x10, 0x22, 0x91, 0x43, 0x41, 0x63, 0x41, 0x6B, 0x20, 0x26, 0xB1, 0x43, - 0x41, 0x63, 0x01, 0x22, 0x04, 0x21, 0x10, 0x46, 0xFB, 0xF7, 0xB0, 0xFB, 0x01, 0x22, 0x05, 0x21, - 0x10, 0x46, 0xFB, 0xF7, 0xAB, 0xFB, 0x04, 0x21, 0x01, 0x20, 0xFB, 0xF7, 0xE1, 0xFB, 0x05, 0x21, - 0x01, 0x20, 0xFB, 0xF7, 0xDD, 0xFB, 0x52, 0x48, 0x59, 0x21, 0x01, 0x60, 0x16, 0x21, 0x01, 0x60, - 0x88, 0x21, 0x01, 0x60, 0x4F, 0x48, 0x01, 0x68, 0x80, 0x27, 0xB9, 0x43, 0x01, 0x60, 0x01, 0x68, - 0x40, 0x22, 0x91, 0x43, 0x01, 0x60, 0x0A, 0x20, 0xFB, 0xF7, 0xA0, 0xF8, 0x03, 0x21, 0x08, 0x46, - 0xFB, 0xF7, 0x4A, 0xF9, 0x01, 0x21, 0x03, 0x20, 0xFB, 0xF7, 0xC2, 0xFB, 0x03, 0x22, 0x01, 0x21, - 0x10, 0x46, 0xFB, 0xF7, 0x83, 0xFB, 0x44, 0x49, 0x00, 0x20, 0xFB, 0xF7, 0xCF, 0xFB, 0x01, 0x22, - 0x11, 0x46, 0x03, 0x20, 0x00, 0x23, 0xFB, 0xF7, 0x6F, 0xF9, 0x40, 0x49, 0x08, 0x68, 0x40, 0x08, - 0x40, 0x00, 0x08, 0x60, 0x20, 0x7B, 0x3E, 0x4A, 0xC0, 0x06, 0x83, 0x0F, 0x04, 0x20, 0x01, 0x2B, - 0x02, 0xD1, 0x6B, 0x78, 0x01, 0x2B, 0x03, 0xD1, 0x10, 0x61, 0x0A, 0x68, 0x32, 0x43, 0x0A, 0x60, - 0x0A, 0x68, 0xFF, 0x23, 0x01, 0x33, 0x1A, 0x43, 0x0A, 0x60, 0x0A, 0x68, 0x3A, 0x43, 0x0A, 0x60, - 0x22, 0x7B, 0x00, 0x24, 0xD2, 0x06, 0x92, 0x0F, 0x01, 0x2A, 0x05, 0xD1, 0x30, 0xBF, 0x2A, 0x78, - 0x00, 0x2A, 0xFB, 0xD1, 0x6C, 0x70, 0x00, 0xE0, 0x30, 0xBF, 0x0F, 0x46, 0x09, 0x68, 0x01, 0x43, - 0x39, 0x60, 0x38, 0x68, 0x40, 0x08, 0x40, 0x00, 0x38, 0x60, 0x02, 0x20, 0xFB, 0xF7, 0x5A, 0xFC, - 0x01, 0x28, 0xFA, 0xD1, 0x38, 0x69, 0xC0, 0x08, 0xC0, 0x00, 0x00, 0x1D, 0x38, 0x61, 0x38, 0x6A, - 0x01, 0x21, 0x89, 0x04, 0x88, 0x43, 0x38, 0x62, 0x38, 0x6A, 0x89, 0x10, 0x88, 0x43, 0x38, 0x62, - 0x01, 0x20, 0xFB, 0xF7, 0xAD, 0xFD, 0xFB, 0xF7, 0x1B, 0xF8, 0xA8, 0x7E, 0x1D, 0x49, 0x48, 0x43, - 0xFB, 0xF7, 0x10, 0xFD, 0xFB, 0xF7, 0x14, 0xF8, 0x02, 0x20, 0xFB, 0xF7, 0x77, 0xFD, 0x05, 0x20, - 0xFB, 0xF7, 0x34, 0xF8, 0x12, 0x48, 0x04, 0x60, 0x01, 0x21, 0x03, 0x20, 0xFB, 0xF7, 0xF2, 0xF8, - 0x68, 0x7D, 0x00, 0x28, 0x0D, 0xD1, 0x01, 0x21, 0x02, 0x20, 0xFB, 0xF7, 0xD5, 0xF8, 0x01, 0x20, - 0xFB, 0xF7, 0x24, 0xF8, 0x01, 0x21, 0x02, 0x20, 0xFB, 0xF7, 0x4A, 0xFB, 0x01, 0x20, 0xFB, 0xF7, - 0x1D, 0xF8, 0xEC, 0x72, 0x01, 0x20, 0xA8, 0x73, 0x03, 0x22, 0x01, 0x46, 0x10, 0x46, 0xFB, 0xF7, - 0x05, 0xFB, 0xFE, 0xF7, 0x77, 0xFA, 0xF8, 0xBD, 0x14, 0x04, 0x00, 0x20, 0x1C, 0x00, 0x00, 0x20, - 0x00, 0x01, 0x00, 0x50, 0x00, 0x40, 0x00, 0x40, 0x29, 0x3F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x50, - 0x00, 0xED, 0x00, 0xE0, 0x40, 0x42, 0x0F, 0x00, 0xF0, 0xB5, 0x7A, 0x4D, 0x85, 0xB0, 0x28, 0x79, - 0x79, 0x49, 0x00, 0x27, 0x09, 0x78, 0x08, 0x43, 0x02, 0xD1, 0x28, 0x7F, 0x03, 0x28, 0x02, 0xD1, - 0xAF, 0x74, 0x2F, 0x86, 0xEF, 0x73, 0x64, 0x20, 0xE8, 0x85, 0x74, 0x48, 0x01, 0x69, 0x01, 0x26, - 0xC9, 0x03, 0x00, 0x29, 0x3C, 0xDB, 0x80, 0x69, 0xA9, 0x7E, 0xF9, 0xF7, 0x7F, 0xF8, 0x70, 0x49, - 0x08, 0x1A, 0x7D, 0x21, 0x04, 0x46, 0xC9, 0x00, 0xF9, 0xF7, 0x82, 0xF8, 0x80, 0xB2, 0xE8, 0x85, - 0xE9, 0x7B, 0x00, 0x29, 0x2C, 0xD1, 0xE9, 0x7E, 0x88, 0x42, 0x20, 0xD2, 0x7D, 0x20, 0xE9, 0x85, - 0xC0, 0x00, 0x41, 0x43, 0x08, 0x1B, 0x19, 0x21, 0x89, 0x01, 0x88, 0x42, 0x14, 0xDD, 0xF9, 0xF7, - 0x6F, 0xF8, 0xC4, 0xB2, 0x00, 0x20, 0x03, 0xF0, 0x89, 0xF8, 0x08, 0xE0, 0x00, 0x20, 0x03, 0xF0, - 0x85, 0xF8, 0x2E, 0x74, 0x00, 0xE0, 0x30, 0xBF, 0x28, 0x7C, 0x00, 0x28, 0xFB, 0xD1, 0x20, 0x46, - 0x64, 0x1E, 0xE4, 0xB2, 0x00, 0x28, 0xF1, 0xD1, 0x02, 0x20, 0x03, 0xF0, 0x77, 0xF8, 0x28, 0x8E, - 0xE9, 0x8D, 0x40, 0x18, 0x80, 0xB2, 0x57, 0x49, 0x28, 0x86, 0x88, 0x42, 0x00, 0xD9, 0xEE, 0x73, - 0xA8, 0x7C, 0x00, 0x28, 0x0C, 0xD0, 0xA8, 0x7C, 0x40, 0x1E, 0x00, 0x06, 0x00, 0x0E, 0xA8, 0x74, - 0x01, 0xD1, 0xEE, 0x73, 0x04, 0xE0, 0xA8, 0x7C, 0x01, 0x28, 0x01, 0xD1, 0xA8, 0x8C, 0xE8, 0x85, - 0xE8, 0x7B, 0x01, 0x28, 0x56, 0xD1, 0x4C, 0x48, 0x00, 0x78, 0x00, 0x28, 0xFA, 0xD1, 0x4B, 0x48, - 0x00, 0x78, 0x00, 0x28, 0xF6, 0xD1, 0xE8, 0x78, 0x00, 0x28, 0x7D, 0xD1, 0xEF, 0x73, 0x2F, 0x86, - 0x6B, 0x6B, 0x02, 0x20, 0x18, 0x70, 0x00, 0x21, 0x03, 0x22, 0xFF, 0x26, 0x02, 0x91, 0x03, 0x91, - 0x04, 0x92, 0x01, 0x91, 0x9E, 0x36, 0x00, 0x93, 0x01, 0x22, 0x31, 0x46, 0xA0, 0x20, 0xFD, 0xF7, - 0x8F, 0xFC, 0x01, 0x20, 0xFA, 0xF7, 0x7A, 0xFF, 0x03, 0xF0, 0x7E, 0xF8, 0x00, 0xF0, 0x7C, 0xF8, - 0xFA, 0xF7, 0x3C, 0xFF, 0x28, 0x7F, 0xFF, 0x24, 0x00, 0x28, 0x2C, 0xD1, 0xFC, 0xF7, 0xDE, 0xFE, - 0x68, 0x7D, 0x00, 0x28, 0x09, 0xD1, 0x01, 0x20, 0xFA, 0xF7, 0x68, 0xFF, 0x00, 0x22, 0x01, 0x21, - 0x33, 0x48, 0x03, 0xF0, 0x8E, 0xF8, 0xFA, 0xF7, 0x15, 0xFF, 0x6B, 0x6B, 0x04, 0x20, 0x18, 0x70, - 0x00, 0x21, 0x03, 0x22, 0x02, 0x91, 0x03, 0x91, 0x04, 0x92, 0x01, 0x91, 0x00, 0x93, 0x01, 0x22, - 0x31, 0x46, 0xA0, 0x20, 0xFD, 0xF7, 0x64, 0xFC, 0xAC, 0x70, 0x03, 0xF0, 0x55, 0xF8, 0x00, 0xF0, - 0x37, 0xFC, 0x05, 0x20, 0xA8, 0x74, 0x20, 0x48, 0x00, 0x78, 0x00, 0x28, 0x34, 0xD0, 0xAF, 0x74, - 0x2F, 0x86, 0xEF, 0x73, 0x30, 0xE0, 0xAC, 0x70, 0x68, 0x7D, 0x00, 0x28, 0x04, 0xD1, 0x00, 0x22, - 0x01, 0x21, 0x1F, 0x48, 0x03, 0xF0, 0x65, 0xF8, 0x69, 0x6B, 0x03, 0x20, 0x08, 0x70, 0x02, 0xE0, - 0x01, 0x20, 0xFA, 0xF7, 0x33, 0xFF, 0x00, 0x21, 0x03, 0x22, 0x04, 0x92, 0x02, 0x91, 0x03, 0x91, - 0x0A, 0x46, 0x69, 0x6B, 0x01, 0x92, 0x0B, 0x46, 0x00, 0x91, 0x01, 0x22, 0x31, 0x46, 0xA0, 0x20, - 0xFD, 0xF7, 0x36, 0xFC, 0x00, 0x28, 0xEB, 0xD0, 0x00, 0x24, 0x12, 0x4E, 0x04, 0xE0, 0xFA, 0xF7, - 0xE5, 0xFE, 0x64, 0x1C, 0xB4, 0x42, 0x03, 0xDC, 0xFC, 0xF7, 0x16, 0xFE, 0x35, 0x28, 0xF6, 0xD1, - 0xAF, 0x74, 0x01, 0x20, 0xFA, 0xF7, 0x12, 0xFF, 0x05, 0x48, 0x02, 0xF0, 0x93, 0xF8, 0x05, 0xB0, - 0xF0, 0xBD, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x20, 0x18, 0x02, 0x00, 0x20, 0x00, 0xE0, 0x00, 0xE0, - 0xA0, 0x86, 0x01, 0x00, 0xB8, 0x0B, 0x00, 0x00, 0xEE, 0x00, 0x00, 0x20, 0x89, 0x03, 0x00, 0x20, - 0x21, 0x15, 0x00, 0x00, 0x70, 0x17, 0x00, 0x00, 0xF8, 0xB5, 0x65, 0x49, 0xFF, 0x20, 0x88, 0x70, - 0x0D, 0x46, 0x08, 0x77, 0x20, 0x35, 0x68, 0x78, 0x0E, 0x28, 0x7D, 0xD0, 0xFB, 0xF7, 0x36, 0xFA, - 0x01, 0x20, 0x00, 0x05, 0xFB, 0xF7, 0x7C, 0xFD, 0x5E, 0x48, 0x59, 0x21, 0x01, 0x60, 0x16, 0x21, - 0x01, 0x60, 0x88, 0x21, 0x01, 0x60, 0x5C, 0x4C, 0x20, 0x68, 0x80, 0x21, 0x88, 0x43, 0x20, 0x60, - 0x20, 0x68, 0x40, 0x21, 0x88, 0x43, 0x20, 0x60, 0x05, 0x27, 0x3F, 0x07, 0x78, 0x6B, 0x10, 0x21, - 0x88, 0x43, 0x78, 0x63, 0x78, 0x6B, 0x20, 0x26, 0xB0, 0x43, 0x78, 0x63, 0x00, 0x22, 0x04, 0x21, - 0x01, 0x20, 0xFB, 0xF7, 0xBB, 0xF9, 0x00, 0x22, 0x05, 0x21, 0x01, 0x20, 0xFB, 0xF7, 0xB6, 0xF9, - 0x4E, 0x49, 0x4F, 0x48, 0xFB, 0xF7, 0x02, 0xFA, 0x01, 0x22, 0x04, 0x21, 0x10, 0x46, 0x00, 0x23, - 0xFA, 0xF7, 0xA2, 0xFF, 0x68, 0x78, 0x0F, 0x28, 0x15, 0xD2, 0x38, 0x6B, 0x21, 0x15, 0x88, 0x43, - 0x38, 0x63, 0x38, 0x6B, 0x49, 0x00, 0x88, 0x43, 0x38, 0x63, 0x00, 0x22, 0x0A, 0x21, 0x10, 0x46, - 0xFB, 0xF7, 0x9C, 0xF9, 0x00, 0x22, 0x0B, 0x21, 0x10, 0x46, 0xFB, 0xF7, 0x97, 0xF9, 0x01, 0x22, - 0x0B, 0x21, 0x00, 0x20, 0x0B, 0xE0, 0x01, 0x21, 0x03, 0x20, 0xFB, 0xF7, 0xC9, 0xF9, 0x03, 0x22, - 0x01, 0x21, 0x10, 0x46, 0xFB, 0xF7, 0x8A, 0xF9, 0x01, 0x22, 0x11, 0x46, 0x03, 0x20, 0x00, 0x23, - 0xFA, 0xF7, 0x7A, 0xFF, 0x37, 0x48, 0x01, 0x68, 0x49, 0x08, 0x49, 0x00, 0x01, 0x60, 0x36, 0x4A, - 0x04, 0x21, 0x11, 0x61, 0x01, 0x68, 0x31, 0x43, 0x01, 0x60, 0x01, 0x68, 0xFF, 0x22, 0x01, 0x32, - 0x11, 0x43, 0x01, 0x60, 0x01, 0x68, 0x80, 0x22, 0x11, 0x43, 0x01, 0x60, 0x30, 0xBF, 0x20, 0x68, - 0x10, 0x43, 0x20, 0x60, 0x20, 0x68, 0x40, 0x21, 0x08, 0x43, 0x20, 0x60, 0x25, 0x48, 0x00, 0x21, - 0x01, 0x60, 0x0B, 0x21, 0x00, 0x20, 0x00, 0xE0, 0x15, 0xE0, 0xFA, 0xF7, 0x33, 0xFF, 0x04, 0x21, - 0x01, 0x20, 0xFA, 0xF7, 0x2F, 0xFF, 0x02, 0xF0, 0x9B, 0xF9, 0xFD, 0xF7, 0x93, 0xFF, 0x01, 0x21, - 0x03, 0x20, 0xFA, 0xF7, 0x27, 0xFF, 0x03, 0x22, 0x01, 0x21, 0x10, 0x46, 0xFB, 0xF7, 0x4E, 0xF9, - 0xFE, 0xF7, 0xC0, 0xF8, 0x00, 0xE0, 0x30, 0xBF, 0x15, 0x4E, 0x30, 0x7F, 0x00, 0x28, 0x23, 0xD0, - 0x02, 0x28, 0x21, 0xD0, 0xB0, 0x78, 0xFF, 0x28, 0x1E, 0xD1, 0x01, 0x27, 0x77, 0x74, 0x6C, 0x78, - 0x00, 0x2C, 0x02, 0xD0, 0x0D, 0x20, 0x44, 0x43, 0x11, 0xE0, 0x21, 0x24, 0x30, 0x7F, 0xFF, 0x28, - 0x0F, 0xD1, 0xB0, 0x78, 0xFF, 0x28, 0x00, 0xD0, 0x4D, 0xE7, 0x00, 0x20, 0x02, 0xF0, 0xFE, 0xFE, - 0x37, 0x74, 0x00, 0xE0, 0x30, 0xBF, 0x30, 0x7C, 0x00, 0x28, 0xFB, 0xD1, 0x64, 0x1E, 0x00, 0x2C, - 0xEC, 0xDC, 0x30, 0x7F, 0x01, 0x28, 0xEF, 0xD1, 0x02, 0x20, 0x02, 0xF0, 0xEF, 0xFE, 0xF8, 0xBD, - 0x1C, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x50, 0x00, 0x40, 0x00, 0x40, 0x29, 0x3F, 0x00, 0x00, - 0x49, 0x98, 0x00, 0x00, 0x00, 0x02, 0x00, 0x50, 0x00, 0xED, 0x00, 0xE0, 0xF0, 0xB5, 0x00, 0x20, - 0x85, 0xB0, 0x03, 0x46, 0x11, 0x4C, 0x12, 0x4F, 0x0A, 0xE0, 0x42, 0x00, 0xB9, 0x5A, 0xA6, 0x6B, - 0x0D, 0x0A, 0xF5, 0x54, 0x59, 0x1C, 0xA5, 0x6B, 0xBA, 0x5A, 0x9B, 0x1C, 0x40, 0x1C, 0x6A, 0x54, - 0x0C, 0x49, 0x09, 0x78, 0x88, 0x42, 0xF0, 0xDB, 0x00, 0x21, 0x03, 0x22, 0x04, 0x92, 0x02, 0x91, - 0x03, 0x91, 0x0A, 0x46, 0xA1, 0x6B, 0x01, 0x92, 0x9A, 0xB2, 0x00, 0x91, 0x0B, 0x46, 0x06, 0x49, - 0xA0, 0x20, 0xFD, 0xF7, 0x0D, 0xFB, 0x05, 0xB0, 0xF0, 0xBD, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x20, - 0x48, 0x1A, 0x00, 0x20, 0x85, 0x03, 0x00, 0x20, 0xC0, 0x4F, 0x00, 0x00, 0x00, 0xB5, 0x85, 0xB0, - 0x27, 0x48, 0x00, 0x78, 0x05, 0x28, 0x48, 0xDC, 0x26, 0x48, 0x00, 0x78, 0x03, 0x28, 0x02, 0xDD, - 0x05, 0x20, 0x23, 0x49, 0x08, 0x70, 0x22, 0x48, 0x00, 0x78, 0x04, 0x28, 0x2A, 0xD1, 0x01, 0xF0, - 0x55, 0xF8, 0x00, 0xF0, 0x13, 0xF9, 0x20, 0x48, 0x00, 0x88, 0x1E, 0x28, 0x22, 0xDD, 0x64, 0x20, - 0x1E, 0x49, 0x08, 0x70, 0x03, 0x22, 0x00, 0x21, 0x02, 0x91, 0x04, 0x92, 0x03, 0x91, 0x0A, 0x46, - 0x1A, 0x49, 0x01, 0x92, 0x00, 0x91, 0x01, 0x22, 0xFF, 0x21, 0x9F, 0x31, 0xA0, 0x20, 0x17, 0x4B, - 0xFD, 0xF7, 0xD6, 0xFA, 0x01, 0x20, 0xFA, 0xF7, 0xC1, 0xFD, 0x02, 0xF0, 0xC5, 0xFE, 0x0A, 0x20, - 0xFA, 0xF7, 0xBC, 0xFD, 0x03, 0x20, 0x0E, 0x49, 0x08, 0x70, 0x0E, 0x48, 0x00, 0x78, 0x40, 0x1C, - 0x0C, 0x49, 0x08, 0x70, 0x0A, 0x48, 0x00, 0x78, 0x40, 0x1C, 0x09, 0x49, 0x08, 0x70, 0x08, 0x46, - 0x00, 0x78, 0x05, 0x28, 0x06, 0xDD, 0x0A, 0x49, 0x00, 0x20, 0x08, 0x5E, 0x09, 0x49, 0x08, 0x80, - 0xF9, 0xF7, 0x8C, 0xFF, 0x00, 0x20, 0x08, 0x49, 0x08, 0x70, 0x05, 0xB0, 0x00, 0xBD, 0x00, 0x00, - 0xD8, 0x00, 0x00, 0x20, 0xD9, 0x00, 0x00, 0x20, 0x5A, 0x01, 0x00, 0x20, 0x44, 0x05, 0x00, 0x20, - 0x9A, 0x01, 0x00, 0x20, 0x9C, 0x01, 0x00, 0x20, 0xEE, 0x00, 0x00, 0x20, 0x11, 0x48, 0x00, 0x78, - 0x00, 0x28, 0x1D, 0xD0, 0x10, 0x48, 0x00, 0x78, 0xCA, 0x28, 0x02, 0xD1, 0x00, 0x20, 0x0D, 0x49, - 0x08, 0x70, 0x00, 0x20, 0x0D, 0x49, 0x08, 0x80, 0x0D, 0x49, 0x08, 0x70, 0x0D, 0x49, 0x08, 0x70, - 0x0D, 0x49, 0x08, 0x70, 0x0D, 0x48, 0x0E, 0x49, 0x08, 0x80, 0x00, 0x20, 0x0D, 0x49, 0x08, 0x80, - 0x0D, 0x49, 0x08, 0x70, 0x0D, 0x49, 0x08, 0x80, 0x0D, 0x49, 0x08, 0x80, 0x0D, 0x49, 0x08, 0x70, - 0x70, 0x47, 0x00, 0x00, 0xEE, 0x00, 0x00, 0x20, 0x2B, 0x01, 0x00, 0x20, 0xF2, 0x00, 0x00, 0x20, - 0xF4, 0x00, 0x00, 0x20, 0xF5, 0x00, 0x00, 0x20, 0xEF, 0x00, 0x00, 0x20, 0x98, 0x3A, 0x00, 0x00, - 0xE6, 0x00, 0x00, 0x20, 0xE8, 0x00, 0x00, 0x20, 0xEB, 0x00, 0x00, 0x20, 0xE0, 0x00, 0x00, 0x20, - 0xE2, 0x00, 0x00, 0x20, 0xEA, 0x00, 0x00, 0x20, 0x00, 0xBF, 0x04, 0x49, 0x89, 0x69, 0x09, 0x02, - 0xC9, 0x0F, 0x01, 0x29, 0xF9, 0xD0, 0x01, 0x49, 0x08, 0x60, 0x70, 0x47, 0x00, 0x00, 0x15, 0x40, - 0xF8, 0xB5, 0x38, 0x48, 0x00, 0x21, 0x03, 0x46, 0x37, 0x4A, 0x10, 0x33, 0x03, 0xE0, 0x54, 0x5C, - 0x04, 0x70, 0x40, 0x1C, 0x49, 0x1C, 0x98, 0x42, 0xF9, 0xD3, 0x32, 0x48, 0x00, 0x24, 0xB0, 0x38, - 0x04, 0x74, 0x32, 0x48, 0x30, 0x4E, 0x04, 0x70, 0x40, 0x3E, 0xF4, 0x74, 0x34, 0x75, 0x74, 0x71, - 0x01, 0x20, 0xFF, 0xF7, 0x5D, 0xFB, 0x2E, 0x4D, 0x59, 0x20, 0x28, 0x60, 0x16, 0x20, 0x28, 0x60, - 0x88, 0x20, 0x28, 0x60, 0xFA, 0xF7, 0x42, 0xFD, 0x1F, 0x20, 0xF4, 0x75, 0x69, 0x46, 0x00, 0x03, - 0xFA, 0xF7, 0x74, 0xFD, 0x23, 0x4E, 0x27, 0x49, 0x00, 0x98, 0x8B, 0x3E, 0x88, 0x42, 0x31, 0xD1, - 0x25, 0x4F, 0x69, 0x46, 0x38, 0x46, 0xFA, 0xF7, 0x69, 0xFD, 0x00, 0x20, 0x00, 0x99, 0x31, 0x54, - 0x00, 0x99, 0x40, 0x1C, 0x09, 0x0A, 0x00, 0x91, 0x04, 0x28, 0xF7, 0xDB, 0x1E, 0x48, 0x36, 0x1D, - 0x3F, 0x1D, 0x5A, 0x30, 0x87, 0x42, 0xEC, 0xD9, 0x69, 0x46, 0x38, 0x46, 0xFA, 0xF7, 0x56, 0xFD, - 0x14, 0x4B, 0x02, 0x27, 0x5C, 0x26, 0x00, 0x20, 0xF0, 0x3B, 0x32, 0x18, 0xD2, 0x18, 0x60, 0x32, - 0x00, 0x99, 0x51, 0x71, 0x09, 0x0A, 0x40, 0x1C, 0x00, 0x91, 0xB8, 0x42, 0xF5, 0xD3, 0xFA, 0xF7, - 0x05, 0xFD, 0x2C, 0x60, 0x01, 0x20, 0xFF, 0xF7, 0x39, 0xFB, 0x0B, 0x48, 0x01, 0x21, 0x40, 0x38, - 0xC1, 0x75, 0xF8, 0xBD, 0xFA, 0xF7, 0xFA, 0xFC, 0x2C, 0x60, 0x01, 0x20, 0xFF, 0xF7, 0x2E, 0xFB, - 0x05, 0x49, 0x00, 0x20, 0x11, 0x31, 0x0A, 0x5C, 0x32, 0x70, 0x76, 0x1C, 0x40, 0x1C, 0x5E, 0x28, - 0xF9, 0xD3, 0xF8, 0xBD, 0xA4, 0x04, 0x00, 0x20, 0x5C, 0x00, 0x00, 0x20, 0x2B, 0x01, 0x00, 0x20, - 0x00, 0x01, 0x00, 0x50, 0x21, 0x43, 0x65, 0x87, 0x04, 0xF0, 0x01, 0x00, 0xFC, 0xB5, 0x50, 0x4D, - 0x00, 0x24, 0xEC, 0x86, 0x4F, 0x4E, 0x00, 0x94, 0xF0, 0x7A, 0x40, 0x07, 0x11, 0xD5, 0x01, 0x94, - 0x08, 0xE0, 0x00, 0x22, 0x01, 0xA9, 0x68, 0x46, 0x00, 0xF0, 0x00, 0xFD, 0x6B, 0x46, 0x18, 0x79, - 0x40, 0x1C, 0x01, 0x90, 0x6B, 0x46, 0x04, 0x20, 0x18, 0x56, 0x29, 0x7A, 0x88, 0x42, 0xF0, 0xDB, - 0x0F, 0xE0, 0x28, 0x7A, 0x06, 0xE0, 0x00, 0x22, 0x01, 0xA9, 0x68, 0x46, 0x00, 0xF0, 0xEE, 0xFC, - 0x6B, 0x46, 0x18, 0x79, 0x6B, 0x46, 0x40, 0x1E, 0x01, 0x90, 0x04, 0x20, 0x18, 0x56, 0x00, 0x28, - 0xF1, 0xDA, 0xF0, 0x7A, 0x00, 0x07, 0x11, 0xD5, 0x01, 0x94, 0x08, 0xE0, 0x01, 0x22, 0x01, 0xA9, - 0x68, 0x46, 0x00, 0xF0, 0xDB, 0xFC, 0x6B, 0x46, 0x18, 0x79, 0x40, 0x1C, 0x01, 0x90, 0x6B, 0x46, - 0x04, 0x20, 0x18, 0x56, 0xE9, 0x7A, 0x88, 0x42, 0xF0, 0xDB, 0x0F, 0xE0, 0xE8, 0x7A, 0x06, 0xE0, - 0x01, 0x22, 0x01, 0xA9, 0x68, 0x46, 0x00, 0xF0, 0xC9, 0xFC, 0x6B, 0x46, 0x18, 0x79, 0x6B, 0x46, - 0x40, 0x1E, 0x01, 0x90, 0x04, 0x20, 0x18, 0x56, 0x00, 0x28, 0xF1, 0xDA, 0x28, 0x49, 0xE8, 0x79, - 0x80, 0x31, 0xCA, 0x28, 0x01, 0xD0, 0xC9, 0x28, 0x32, 0xD1, 0x01, 0x22, 0x52, 0x02, 0x23, 0x27, - 0x7F, 0x01, 0x06, 0xE0, 0xCB, 0x68, 0x40, 0x00, 0x1A, 0x52, 0x6B, 0x46, 0x18, 0x88, 0x40, 0x1C, - 0x00, 0x90, 0x6B, 0x46, 0x18, 0x88, 0xB8, 0x42, 0xF4, 0xD3, 0xF0, 0x7A, 0xC0, 0x09, 0x01, 0xD0, - 0x20, 0x20, 0x00, 0xE0, 0x1C, 0x20, 0x2A, 0x7C, 0x00, 0x92, 0xEA, 0x79, 0x1A, 0x4E, 0xCA, 0x2A, - 0x01, 0x94, 0x16, 0xD1, 0x19, 0x4C, 0x0D, 0xE0, 0x6B, 0x46, 0x1B, 0x88, 0x52, 0x00, 0xCD, 0x68, - 0xA2, 0x5A, 0x5B, 0x00, 0xEA, 0x52, 0x6B, 0x46, 0x1A, 0x88, 0x12, 0x18, 0x00, 0x92, 0x1A, 0x79, - 0x52, 0x1C, 0x01, 0x92, 0x6B, 0x46, 0x04, 0x22, 0x9A, 0x56, 0x33, 0x78, 0x9A, 0x42, 0xEB, 0xDB, - 0xFC, 0xBD, 0x0F, 0x4C, 0x0D, 0xE0, 0x6B, 0x46, 0x1B, 0x88, 0x52, 0x00, 0xCD, 0x68, 0xA2, 0x5A, - 0x5B, 0x00, 0xEA, 0x52, 0x6B, 0x46, 0x1A, 0x88, 0x12, 0x18, 0x00, 0x92, 0x1A, 0x79, 0x52, 0x1C, - 0x01, 0x92, 0x6B, 0x46, 0x04, 0x22, 0x9A, 0x56, 0x33, 0x78, 0x9A, 0x42, 0xEB, 0xDB, 0xFC, 0xBD, - 0x24, 0x01, 0x00, 0x20, 0x14, 0x04, 0x00, 0x20, 0x85, 0x03, 0x00, 0x20, 0x58, 0x1A, 0x00, 0x20, - 0x38, 0x1A, 0x00, 0x20, 0xF0, 0xB5, 0x4E, 0x48, 0x4E, 0x49, 0x00, 0x88, 0x09, 0x88, 0x40, 0x04, - 0x06, 0x0C, 0x48, 0x04, 0x01, 0x0C, 0x87, 0xB0, 0x30, 0x46, 0x06, 0x91, 0x8E, 0x42, 0x00, 0xD8, - 0x08, 0x46, 0x05, 0x90, 0x48, 0x48, 0x01, 0x21, 0x41, 0x71, 0x48, 0x49, 0x0C, 0x68, 0x23, 0x21, - 0x49, 0x01, 0x65, 0x18, 0x44, 0x4F, 0x78, 0x7A, 0x00, 0x28, 0x03, 0xD0, 0x00, 0x20, 0x78, 0x72, - 0xFD, 0xF7, 0x82, 0xFD, 0x78, 0x7B, 0x00, 0x28, 0x07, 0xD0, 0x3F, 0x49, 0x00, 0x20, 0x48, 0x71, - 0x03, 0x20, 0x03, 0xF0, 0x89, 0xF8, 0x07, 0xB0, 0xF0, 0xBD, 0x02, 0xF0, 0xF5, 0xFC, 0xFC, 0xF7, - 0xEB, 0xFA, 0x35, 0x28, 0xFB, 0xD1, 0x00, 0x20, 0x03, 0x46, 0x00, 0x21, 0xBA, 0x6B, 0x40, 0x1C, - 0x10, 0x28, 0xD1, 0x54, 0xF8, 0xDB, 0x34, 0x4F, 0x03, 0x22, 0x78, 0x6B, 0xB9, 0x6B, 0x02, 0xAB, - 0x07, 0xC3, 0x33, 0x48, 0x00, 0x21, 0x00, 0x78, 0x00, 0x91, 0x42, 0x00, 0x01, 0x92, 0x0A, 0x46, - 0x30, 0x49, 0xA0, 0x20, 0x00, 0x23, 0xFD, 0xF7, 0xE3, 0xF8, 0x01, 0x20, 0xB9, 0x6B, 0xFC, 0xF7, - 0x11, 0xFA, 0x03, 0x22, 0x04, 0x92, 0x05, 0x9A, 0x00, 0x21, 0x01, 0x92, 0x00, 0x91, 0x0A, 0x46, - 0x95, 0x21, 0x03, 0x95, 0x02, 0x94, 0x09, 0x01, 0xA0, 0x20, 0x00, 0x23, 0xFD, 0xF7, 0xD0, 0xF8, - 0x00, 0x20, 0x01, 0x46, 0x0A, 0xE0, 0x62, 0x5C, 0x63, 0x18, 0x5B, 0x78, 0x12, 0x02, 0x9A, 0x18, - 0x21, 0x4F, 0x43, 0x00, 0x3F, 0x68, 0x40, 0x1C, 0x89, 0x1C, 0xFA, 0x52, 0xB1, 0x42, 0xF2, 0xDB, - 0x00, 0x21, 0x0A, 0xE0, 0x6A, 0x5C, 0x6B, 0x18, 0x5B, 0x78, 0x12, 0x02, 0x9A, 0x18, 0x1A, 0x4F, - 0x43, 0x00, 0x3F, 0x68, 0x40, 0x1C, 0x89, 0x1C, 0xFA, 0x52, 0x06, 0x9A, 0x91, 0x42, 0xF1, 0xDB, - 0x16, 0x49, 0x00, 0x20, 0x08, 0x70, 0xFF, 0xF7, 0xD1, 0xFE, 0xFD, 0xF7, 0xA1, 0xFD, 0x0E, 0x49, - 0x01, 0x20, 0x08, 0x71, 0x00, 0xF0, 0x66, 0xFD, 0x00, 0x27, 0x0C, 0xE0, 0x01, 0x21, 0x41, 0x74, - 0xC0, 0x78, 0x00, 0x28, 0x02, 0xD1, 0xFA, 0xF7, 0x63, 0xFB, 0x7F, 0x1C, 0x7D, 0x20, 0xC0, 0x00, - 0x87, 0x42, 0x00, 0xDD, 0x7E, 0xE7, 0x04, 0x48, 0x01, 0x79, 0x00, 0x29, 0xEE, 0xD1, 0x79, 0xE7, - 0x6C, 0x01, 0x00, 0x20, 0x26, 0x02, 0x00, 0x20, 0x1C, 0x00, 0x00, 0x20, 0xB0, 0x01, 0x00, 0x20, - 0x85, 0x03, 0x00, 0x20, 0xD0, 0x4F, 0x00, 0x00, 0xA8, 0x01, 0x00, 0x20, 0x1C, 0x02, 0x00, 0x20, - 0xF8, 0xB5, 0x25, 0x48, 0x07, 0x68, 0x25, 0x4E, 0x02, 0xF0, 0xE6, 0xFB, 0x59, 0x20, 0x24, 0x49, - 0x08, 0x60, 0x16, 0x20, 0x08, 0x60, 0x88, 0x20, 0x08, 0x60, 0xFA, 0xF7, 0x7F, 0xFB, 0x69, 0x46, - 0x7D, 0x20, 0x80, 0x02, 0xFA, 0xF7, 0xB2, 0xFB, 0x1E, 0x49, 0x00, 0x98, 0x08, 0x60, 0x00, 0x25, - 0x1D, 0x4C, 0x11, 0xE0, 0x69, 0x46, 0x20, 0x46, 0xFA, 0xF7, 0xA8, 0xFB, 0x00, 0x98, 0x38, 0x80, - 0x38, 0x88, 0x45, 0x19, 0xBF, 0x1C, 0x00, 0x98, 0x00, 0x0C, 0x00, 0x90, 0x00, 0x98, 0x2D, 0x18, - 0x00, 0x98, 0x38, 0x80, 0xBF, 0x1C, 0x24, 0x1D, 0x7D, 0x20, 0x80, 0x02, 0x30, 0x18, 0xA0, 0x42, - 0xE8, 0xD8, 0x10, 0x48, 0x00, 0x68, 0x64, 0x28, 0x0C, 0xDB, 0x69, 0x46, 0x20, 0x46, 0xFA, 0xF7, - 0x8D, 0xFB, 0x00, 0x98, 0x85, 0x42, 0x03, 0xD1, 0x01, 0x20, 0x0C, 0x49, 0x08, 0x70, 0x01, 0xE0, - 0xF9, 0xF7, 0xFE, 0xFB, 0xFA, 0xF7, 0x42, 0xFB, 0x00, 0x20, 0x05, 0x49, 0x08, 0x60, 0x02, 0x20, - 0x02, 0xF0, 0xE4, 0xFB, 0xF8, 0xBD, 0x00, 0x00, 0xAC, 0x01, 0x00, 0x20, 0xC4, 0x08, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x50, 0xFC, 0x00, 0x00, 0x20, 0x04, 0xF4, 0x01, 0x00, 0xF6, 0x00, 0x00, 0x20, - 0x70, 0xB5, 0xFC, 0xF7, 0xCD, 0xFD, 0x13, 0x49, 0x08, 0x70, 0xC0, 0xB2, 0x01, 0x28, 0x03, 0xD1, - 0x02, 0x20, 0x02, 0xF0, 0xA1, 0xFF, 0x70, 0xBD, 0x00, 0x28, 0xFC, 0xD1, 0x0E, 0x4C, 0xE0, 0x7C, - 0x00, 0x28, 0x03, 0xD0, 0x00, 0x20, 0xE0, 0x74, 0x01, 0x20, 0x20, 0x75, 0x0B, 0x4D, 0x01, 0x22, - 0x29, 0x68, 0x60, 0x6B, 0xFA, 0xF7, 0xEA, 0xF9, 0x09, 0x48, 0x0A, 0x49, 0x00, 0x78, 0x09, 0x78, - 0x02, 0x22, 0x48, 0x43, 0x29, 0x68, 0x40, 0x00, 0x41, 0x18, 0xA0, 0x6B, 0xFA, 0xF7, 0xDE, 0xF9, - 0x70, 0xBD, 0x00, 0x00, 0x1C, 0x02, 0x00, 0x20, 0x1C, 0x00, 0x00, 0x20, 0xA8, 0x01, 0x00, 0x20, - 0x34, 0x01, 0x00, 0x20, 0x2C, 0x01, 0x00, 0x20, 0x70, 0xB5, 0x2C, 0x48, 0x05, 0x68, 0x00, 0x68, - 0x23, 0x21, 0x49, 0x01, 0x46, 0x18, 0x2A, 0x48, 0x2A, 0x49, 0x08, 0x80, 0x40, 0x42, 0x2A, 0x49, - 0x08, 0x80, 0x00, 0x24, 0x0A, 0xE0, 0x29, 0x48, 0x03, 0x78, 0x32, 0x46, 0x28, 0x48, 0x01, 0x78, - 0x28, 0x46, 0x01, 0xF0, 0xB1, 0xF8, 0x14, 0x35, 0x14, 0x36, 0x64, 0x1C, 0x25, 0x48, 0x00, 0x78, - 0x84, 0x42, 0xF0, 0xDB, 0x24, 0x48, 0x00, 0x78, 0x00, 0x28, 0x10, 0xD0, 0x00, 0x24, 0x0A, 0xE0, - 0x22, 0x48, 0x03, 0x78, 0x32, 0x46, 0x20, 0x48, 0x01, 0x78, 0x28, 0x46, 0x01, 0xF0, 0x9C, 0xF8, - 0x14, 0x35, 0x14, 0x36, 0x64, 0x1C, 0x1B, 0x48, 0x00, 0x78, 0x84, 0x42, 0xF0, 0xDB, 0x00, 0x24, - 0x0A, 0xE0, 0x16, 0x48, 0x03, 0x78, 0x32, 0x46, 0x15, 0x48, 0x01, 0x78, 0x28, 0x46, 0x01, 0xF0, - 0x8B, 0xF8, 0x14, 0x35, 0x14, 0x36, 0x64, 0x1C, 0x15, 0x48, 0x00, 0x78, 0x84, 0x42, 0xF0, 0xDB, - 0x11, 0x48, 0x00, 0x78, 0x00, 0x28, 0x10, 0xD0, 0x00, 0x24, 0x0A, 0xE0, 0x0F, 0x48, 0x03, 0x78, - 0x32, 0x46, 0x0D, 0x48, 0x01, 0x78, 0x28, 0x46, 0x01, 0xF0, 0x76, 0xF8, 0x14, 0x35, 0x14, 0x36, - 0x64, 0x1C, 0x0B, 0x48, 0x00, 0x78, 0x84, 0x42, 0xF0, 0xDB, 0x70, 0xBD, 0xB0, 0x01, 0x00, 0x20, - 0x18, 0xFC, 0xFF, 0xFF, 0x74, 0x01, 0x00, 0x20, 0x72, 0x01, 0x00, 0x20, 0x30, 0x01, 0x00, 0x20, - 0x2D, 0x01, 0x00, 0x20, 0x32, 0x01, 0x00, 0x20, 0x2E, 0x01, 0x00, 0x20, 0x31, 0x01, 0x00, 0x20, - 0x33, 0x01, 0x00, 0x20, 0x70, 0xB5, 0x04, 0x46, 0x00, 0x25, 0x23, 0x46, 0x02, 0xF0, 0xB0, 0xFB, - 0x05, 0x04, 0x07, 0x0C, 0x11, 0x14, 0x17, 0x00, 0x01, 0xF0, 0xAA, 0xFE, 0x10, 0xE0, 0x01, 0xF0, - 0x25, 0xFF, 0xFF, 0xF7, 0xD3, 0xFC, 0x0B, 0xE0, 0xFF, 0xF7, 0x70, 0xFC, 0x02, 0xF0, 0x78, 0xFA, - 0x06, 0xE0, 0x00, 0xF0, 0xEB, 0xFB, 0x03, 0xE0, 0xF9, 0xF7, 0x2A, 0xFB, 0x00, 0xE0, 0x00, 0xBF, - 0x00, 0xBF, 0x28, 0x46, 0x70, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0xFD, 0xF7, 0xB3, 0xFC, 0x5E, 0x4C, - 0x60, 0x79, 0x5E, 0x49, 0x80, 0x07, 0x80, 0x0F, 0x08, 0x70, 0x20, 0x7B, 0x5C, 0x4E, 0xC0, 0x06, - 0x80, 0x0F, 0x0C, 0xD1, 0xA0, 0x79, 0xF0, 0x84, 0x80, 0xB2, 0xE1, 0x79, 0x00, 0x02, 0x08, 0x18, - 0xF0, 0x84, 0x20, 0x7A, 0x30, 0x85, 0x80, 0xB2, 0x00, 0x02, 0x61, 0x7A, 0x0B, 0xE0, 0xE0, 0x79, - 0xF0, 0x84, 0x80, 0xB2, 0xA1, 0x79, 0x00, 0x02, 0x08, 0x18, 0xF0, 0x84, 0x60, 0x7A, 0x30, 0x85, - 0x80, 0xB2, 0x21, 0x7A, 0x00, 0x02, 0x08, 0x18, 0x30, 0x85, 0x4E, 0x48, 0x0A, 0x21, 0x01, 0x70, - 0xA1, 0x7A, 0x0A, 0x29, 0x03, 0xD8, 0xA1, 0x7A, 0x09, 0x07, 0x09, 0x0F, 0x01, 0x70, 0x21, 0x7B, - 0x45, 0x4D, 0xC9, 0x06, 0x60, 0x35, 0x89, 0x0F, 0x01, 0x29, 0x09, 0xD1, 0xE1, 0x79, 0xE9, 0x70, - 0xA1, 0x79, 0x29, 0x71, 0x61, 0x7A, 0x69, 0x71, 0x21, 0x7A, 0xA9, 0x71, 0x00, 0x78, 0x28, 0x73, - 0x20, 0x7B, 0x3F, 0x4A, 0x40, 0x07, 0x40, 0x0F, 0x20, 0x32, 0x11, 0x78, 0xC9, 0x08, 0xC9, 0x00, - 0x01, 0x43, 0x11, 0x70, 0x20, 0x7C, 0x3C, 0x49, 0x00, 0x07, 0x00, 0x0F, 0x08, 0x70, 0x60, 0x7C, - 0x3A, 0x49, 0x80, 0x06, 0x80, 0x0E, 0x08, 0x70, 0x60, 0x7C, 0x39, 0x49, 0x80, 0x09, 0x08, 0x70, - 0xA0, 0x7C, 0x38, 0x49, 0x08, 0x70, 0xFA, 0xF7, 0x8F, 0xFF, 0x2F, 0x48, 0x40, 0x30, 0x41, 0x78, - 0x35, 0x4A, 0x11, 0x70, 0x80, 0x78, 0x35, 0x49, 0x08, 0x70, 0x01, 0x20, 0xFF, 0xF7, 0x18, 0xF8, - 0x33, 0x4F, 0x59, 0x20, 0x38, 0x60, 0x16, 0x20, 0x38, 0x60, 0x88, 0x20, 0x38, 0x60, 0xB0, 0x7E, - 0x30, 0x49, 0x48, 0x43, 0xFA, 0xF7, 0xAE, 0xFE, 0x00, 0x20, 0x38, 0x60, 0x01, 0x20, 0xFF, 0xF7, - 0x25, 0xF8, 0x02, 0x20, 0xFA, 0xF7, 0xD2, 0xF9, 0x01, 0xF0, 0x02, 0xFD, 0xA8, 0x78, 0x00, 0x09, - 0x40, 0x00, 0x80, 0x1D, 0xF0, 0x76, 0xC0, 0xB2, 0x24, 0x28, 0x01, 0xD9, 0x24, 0x20, 0xF0, 0x76, - 0xF5, 0x7E, 0x7D, 0x20, 0xC0, 0x02, 0x68, 0x43, 0x06, 0x21, 0xF8, 0xF7, 0x57, 0xFA, 0x22, 0x49, - 0x08, 0x60, 0x19, 0x20, 0x80, 0x02, 0x68, 0x43, 0x06, 0x21, 0xF8, 0xF7, 0x4F, 0xFA, 0x1F, 0x49, - 0x08, 0x60, 0xFD, 0xF7, 0x15, 0xFD, 0x1F, 0x48, 0x1D, 0x49, 0x01, 0x60, 0x1F, 0x4A, 0x1E, 0x48, - 0x10, 0x60, 0x1F, 0x4A, 0x20, 0x4B, 0x10, 0x60, 0x1E, 0x4A, 0x70, 0x63, 0x12, 0x78, 0x1B, 0x78, - 0x5A, 0x43, 0x52, 0x08, 0x10, 0x18, 0x14, 0x30, 0xB0, 0x63, 0x1C, 0x48, 0x01, 0x60, 0xFD, 0xF7, - 0xBB, 0xFB, 0x03, 0x20, 0x30, 0x77, 0xA0, 0x7B, 0x01, 0x07, 0x05, 0x48, 0x09, 0x0F, 0x20, 0x30, - 0x41, 0x70, 0x07, 0x21, 0xC1, 0x70, 0xF8, 0xBD, 0x14, 0x04, 0x00, 0x20, 0x3D, 0x01, 0x00, 0x20, - 0x1C, 0x00, 0x00, 0x20, 0x36, 0x01, 0x00, 0x20, 0x3A, 0x01, 0x00, 0x20, 0x27, 0x01, 0x00, 0x20, - 0x46, 0x01, 0x00, 0x20, 0x3B, 0x01, 0x00, 0x20, 0x38, 0x01, 0x00, 0x20, 0x37, 0x01, 0x00, 0x20, - 0x00, 0x01, 0x00, 0x50, 0x40, 0x42, 0x0F, 0x00, 0xA0, 0x01, 0x00, 0x20, 0xA4, 0x01, 0x00, 0x20, - 0x00, 0x07, 0x00, 0x20, 0xAC, 0x01, 0x00, 0x20, 0xD8, 0x10, 0x00, 0x20, 0xB0, 0x01, 0x00, 0x20, - 0xB4, 0x01, 0x00, 0x20, 0x34, 0x01, 0x00, 0x20, 0x35, 0x01, 0x00, 0x20, 0xA8, 0x01, 0x00, 0x20, - 0x10, 0xB5, 0x11, 0x49, 0x00, 0x28, 0x05, 0xD1, 0x0B, 0x7C, 0x08, 0x22, 0x00, 0x2B, 0x07, 0xD0, - 0x0A, 0x7C, 0x15, 0xE0, 0x08, 0x7C, 0x08, 0x22, 0x00, 0x28, 0x13, 0xD0, 0x08, 0x7C, 0x0F, 0xE0, - 0x09, 0x49, 0xA0, 0x39, 0x09, 0x18, 0xA0, 0x31, 0x0B, 0x79, 0x00, 0x2B, 0x0A, 0xD0, 0x09, 0x79, - 0xFF, 0x23, 0x01, 0x33, 0x59, 0x1A, 0x44, 0x00, 0x04, 0x4B, 0x40, 0x1C, 0x19, 0x53, 0xC0, 0xB2, - 0x90, 0x42, 0xED, 0xD3, 0x10, 0xBD, 0x00, 0x00, 0x54, 0x04, 0x00, 0x20, 0x8A, 0x06, 0x00, 0x20, - 0xFC, 0xB5, 0xBA, 0x48, 0x07, 0x68, 0x00, 0x68, 0x23, 0x21, 0x49, 0x01, 0x40, 0x18, 0x00, 0x90, - 0x00, 0xF0, 0x8E, 0xFA, 0xB6, 0x48, 0x06, 0x78, 0x00, 0x25, 0x00, 0x24, 0x4A, 0xE0, 0x00, 0x20, - 0x01, 0x90, 0x43, 0xE0, 0x68, 0x00, 0x38, 0x5E, 0xB0, 0x42, 0x0A, 0xDD, 0x60, 0x00, 0xB1, 0x49, - 0x08, 0x5A, 0x69, 0x00, 0x79, 0x5A, 0x40, 0x18, 0x00, 0xB2, 0x61, 0x00, 0xAD, 0x4A, 0x50, 0x52, - 0x0E, 0xE0, 0x68, 0x00, 0x38, 0x5E, 0x71, 0x42, 0x88, 0x42, 0x09, 0xDA, 0x60, 0x00, 0xAA, 0x49, - 0x08, 0x5A, 0x69, 0x00, 0x79, 0x5A, 0x40, 0x1A, 0x00, 0xB2, 0x61, 0x00, 0xA6, 0x4A, 0x50, 0x52, - 0x68, 0x00, 0x00, 0x99, 0x08, 0x5E, 0xB0, 0x42, 0x0B, 0xDD, 0x60, 0x00, 0xA1, 0x49, 0x08, 0x5A, - 0x69, 0x00, 0x00, 0x9A, 0x51, 0x5A, 0x40, 0x18, 0x00, 0xB2, 0x61, 0x00, 0x9D, 0x4A, 0x50, 0x52, - 0x10, 0xE0, 0x68, 0x00, 0x00, 0x99, 0x08, 0x5E, 0x71, 0x42, 0x88, 0x42, 0x0A, 0xDA, 0x60, 0x00, - 0x99, 0x49, 0x08, 0x5A, 0x69, 0x00, 0x00, 0x9A, 0x51, 0x5A, 0x40, 0x1A, 0x00, 0xB2, 0x61, 0x00, - 0x95, 0x4A, 0x50, 0x52, 0x01, 0x98, 0x40, 0x1C, 0x01, 0x90, 0x6D, 0x1C, 0x01, 0x98, 0x0A, 0x28, - 0xB8, 0xDB, 0x64, 0x1C, 0x91, 0x48, 0x00, 0x78, 0x84, 0x42, 0xB0, 0xDB, 0x90, 0x48, 0x00, 0x78, - 0x00, 0x28, 0x50, 0xD0, 0x00, 0x24, 0x4A, 0xE0, 0x00, 0x20, 0x01, 0x90, 0x43, 0xE0, 0x68, 0x00, - 0x38, 0x5E, 0xB0, 0x42, 0x0A, 0xDD, 0x60, 0x00, 0x86, 0x49, 0x08, 0x5A, 0x69, 0x00, 0x79, 0x5A, - 0x40, 0x18, 0x00, 0xB2, 0x61, 0x00, 0x83, 0x4A, 0x50, 0x52, 0x0E, 0xE0, 0x68, 0x00, 0x38, 0x5E, - 0x71, 0x42, 0x88, 0x42, 0x09, 0xDA, 0x60, 0x00, 0x7F, 0x49, 0x08, 0x5A, 0x69, 0x00, 0x79, 0x5A, - 0x40, 0x1A, 0x00, 0xB2, 0x61, 0x00, 0x7C, 0x4A, 0x50, 0x52, 0x68, 0x00, 0x00, 0x99, 0x08, 0x5E, - 0xB0, 0x42, 0x0B, 0xDD, 0x60, 0x00, 0x77, 0x49, 0x09, 0x5A, 0x6A, 0x00, 0x00, 0x98, 0x80, 0x5A, - 0x08, 0x18, 0x00, 0xB2, 0x61, 0x00, 0x73, 0x4A, 0x50, 0x52, 0x10, 0xE0, 0x68, 0x00, 0x00, 0x99, - 0x08, 0x5E, 0x71, 0x42, 0x88, 0x42, 0x0A, 0xDA, 0x60, 0x00, 0x6F, 0x49, 0x08, 0x5A, 0x69, 0x00, - 0x00, 0x9A, 0x51, 0x5A, 0x40, 0x1A, 0x00, 0xB2, 0x61, 0x00, 0x6B, 0x4A, 0x50, 0x52, 0x01, 0x98, - 0x40, 0x1C, 0x01, 0x90, 0x6D, 0x1C, 0x01, 0x98, 0x0A, 0x28, 0xB8, 0xDB, 0x64, 0x1C, 0x67, 0x48, - 0x00, 0x78, 0x84, 0x42, 0xB0, 0xDB, 0x65, 0x48, 0x04, 0x78, 0x4A, 0xE0, 0x00, 0x20, 0x01, 0x90, - 0x43, 0xE0, 0x68, 0x00, 0x38, 0x5E, 0xB0, 0x42, 0x0A, 0xDD, 0x60, 0x00, 0x5D, 0x49, 0x08, 0x5A, - 0x69, 0x00, 0x79, 0x5A, 0x40, 0x18, 0x00, 0xB2, 0x61, 0x00, 0x5A, 0x4A, 0x50, 0x52, 0x0E, 0xE0, - 0x68, 0x00, 0x38, 0x5E, 0x71, 0x42, 0x88, 0x42, 0x09, 0xDA, 0x60, 0x00, 0x56, 0x49, 0x08, 0x5A, - 0x69, 0x00, 0x79, 0x5A, 0x40, 0x1A, 0x00, 0xB2, 0x61, 0x00, 0x53, 0x4A, 0x50, 0x52, 0x68, 0x00, - 0x00, 0x99, 0x08, 0x5E, 0xB0, 0x42, 0x0B, 0xDD, 0x60, 0x00, 0x4E, 0x49, 0x08, 0x5A, 0x69, 0x00, - 0x00, 0x9A, 0x51, 0x5A, 0x40, 0x18, 0x00, 0xB2, 0x61, 0x00, 0x4A, 0x4A, 0x50, 0x52, 0x10, 0xE0, - 0x68, 0x00, 0x00, 0x99, 0x08, 0x5E, 0x71, 0x42, 0x88, 0x42, 0x0A, 0xDA, 0x60, 0x00, 0x46, 0x49, - 0x08, 0x5A, 0x6A, 0x00, 0x00, 0x99, 0x89, 0x5A, 0x40, 0x1A, 0x00, 0xB2, 0x61, 0x00, 0x42, 0x4A, - 0x50, 0x52, 0x01, 0x98, 0x40, 0x1C, 0x01, 0x90, 0x6D, 0x1C, 0x01, 0x98, 0x0A, 0x28, 0xB8, 0xDB, - 0x64, 0x1C, 0x3E, 0x48, 0x00, 0x78, 0x3F, 0x49, 0x09, 0x78, 0x40, 0x18, 0xA0, 0x42, 0xAD, 0xDC, - 0x3B, 0x48, 0x00, 0x78, 0x00, 0x28, 0x54, 0xD0, 0x38, 0x48, 0x04, 0x78, 0x4A, 0xE0, 0x00, 0x20, - 0x01, 0x90, 0x43, 0xE0, 0x68, 0x00, 0x38, 0x5E, 0xB0, 0x42, 0x0A, 0xDD, 0x60, 0x00, 0x31, 0x49, - 0x08, 0x5A, 0x69, 0x00, 0x79, 0x5A, 0x40, 0x18, 0x00, 0xB2, 0x61, 0x00, 0x2D, 0x4A, 0x50, 0x52, - 0x0E, 0xE0, 0x68, 0x00, 0x38, 0x5E, 0x71, 0x42, 0x88, 0x42, 0x09, 0xDA, 0x60, 0x00, 0x2A, 0x49, - 0x08, 0x5A, 0x69, 0x00, 0x79, 0x5A, 0x40, 0x1A, 0x00, 0xB2, 0x61, 0x00, 0x26, 0x4A, 0x50, 0x52, - 0x69, 0x00, 0x00, 0x98, 0x40, 0x5E, 0xB0, 0x42, 0x0B, 0xDD, 0x60, 0x00, 0x21, 0x49, 0x09, 0x5A, - 0x6A, 0x00, 0x00, 0x98, 0x80, 0x5A, 0x08, 0x18, 0x00, 0xB2, 0x61, 0x00, 0x1D, 0x4A, 0x50, 0x52, - 0x10, 0xE0, 0x69, 0x00, 0x00, 0x98, 0x40, 0x5E, 0x71, 0x42, 0x88, 0x42, 0x0A, 0xDA, 0x60, 0x00, - 0x19, 0x49, 0x08, 0x5A, 0x69, 0x00, 0x00, 0x9A, 0x51, 0x5A, 0x40, 0x1A, 0x00, 0xB2, 0x61, 0x00, - 0x15, 0x4A, 0x50, 0x52, 0x01, 0x98, 0x40, 0x1C, 0x01, 0x90, 0x6D, 0x1C, 0x01, 0x98, 0x0A, 0x28, - 0xB8, 0xDB, 0x64, 0x1C, 0x11, 0x48, 0x00, 0x78, 0x12, 0x49, 0x09, 0x78, 0x40, 0x18, 0xA0, 0x42, - 0xAD, 0xDC, 0x00, 0x24, 0x0F, 0xE0, 0x60, 0x00, 0x0A, 0x49, 0x08, 0x5E, 0x00, 0x28, 0x04, 0xDC, - 0x60, 0x00, 0x09, 0x49, 0x08, 0x5E, 0x00, 0x28, 0x04, 0xDD, 0x0B, 0x48, 0x00, 0x78, 0x40, 0x1C, - 0x09, 0x49, 0x08, 0x70, 0x64, 0x1C, 0x20, 0x2C, 0xED, 0xDB, 0xFC, 0xBD, 0xB0, 0x01, 0x00, 0x20, - 0x38, 0x01, 0x00, 0x20, 0xC4, 0x04, 0x00, 0x20, 0x04, 0x05, 0x00, 0x20, 0x32, 0x01, 0x00, 0x20, - 0x2E, 0x01, 0x00, 0x20, 0x33, 0x01, 0x00, 0x20, 0xCC, 0x00, 0x00, 0x20, 0xF7, 0xB5, 0x86, 0xB0, - 0x78, 0x4B, 0x05, 0x93, 0xDC, 0x7A, 0x00, 0x22, 0x77, 0x4B, 0xE7, 0x09, 0x1E, 0x89, 0x9D, 0x88, - 0xDC, 0x88, 0x04, 0x96, 0x1E, 0x88, 0x03, 0x95, 0x5D, 0x88, 0x74, 0x4B, 0x02, 0x94, 0x5B, 0x68, - 0x8C, 0x56, 0x01, 0x93, 0x7D, 0xD1, 0xE1, 0x03, 0x0F, 0x0C, 0x6F, 0x49, 0xB6, 0x46, 0x40, 0x39, - 0x0B, 0x8F, 0x49, 0x8F, 0x8C, 0x46, 0x08, 0x99, 0x01, 0x29, 0x0A, 0xD1, 0x04, 0x99, 0x03, 0x9D, - 0x79, 0x18, 0x8F, 0xB2, 0x68, 0x49, 0xAE, 0x46, 0x40, 0x39, 0x8B, 0x8F, 0xC9, 0x8F, 0x02, 0x9D, - 0x8C, 0x46, 0x05, 0x99, 0xC9, 0x7A, 0xC9, 0x06, 0x02, 0xD5, 0x00, 0x21, 0x8E, 0x46, 0x00, 0xE0, - 0x00, 0x25, 0x61, 0x49, 0x40, 0x39, 0x8E, 0x7A, 0x49, 0x7B, 0xE4, 0x07, 0x05, 0xD1, 0x5E, 0x49, - 0x40, 0x39, 0x4E, 0x7A, 0x09, 0x7B, 0x00, 0x23, 0x9C, 0x46, 0x08, 0x9C, 0x01, 0x2C, 0x00, 0xD1, - 0x0E, 0x46, 0x01, 0x9C, 0x79, 0x00, 0x0C, 0x19, 0x00, 0x21, 0xEB, 0x18, 0x00, 0x93, 0x10, 0xE0, - 0x0B, 0x46, 0x00, 0x9D, 0x73, 0x43, 0x5B, 0x19, 0x5B, 0x00, 0xE7, 0x5A, 0x03, 0x88, 0x52, 0x1C, - 0x5D, 0x1C, 0x05, 0x80, 0x51, 0x4D, 0x49, 0x1C, 0xED, 0x68, 0x5B, 0x00, 0x92, 0xB2, 0xC9, 0xB2, - 0xEF, 0x52, 0x4D, 0x4B, 0x40, 0x3B, 0x9D, 0x7B, 0xA9, 0x42, 0xE9, 0xD3, 0x65, 0x46, 0x75, 0x44, - 0x00, 0x21, 0xAC, 0x46, 0x0F, 0xE0, 0x0B, 0x46, 0x73, 0x43, 0x63, 0x44, 0x5B, 0x00, 0xE7, 0x5A, - 0x03, 0x88, 0x52, 0x1C, 0x5D, 0x1C, 0x05, 0x80, 0x44, 0x4D, 0x49, 0x1C, 0xED, 0x68, 0x5B, 0x00, - 0x92, 0xB2, 0xC9, 0xB2, 0xEF, 0x52, 0x40, 0x4B, 0x40, 0x3B, 0xDB, 0x7B, 0x99, 0x42, 0xEA, 0xD3, - 0x3D, 0x49, 0x40, 0x39, 0xC9, 0x79, 0xCA, 0x29, 0x01, 0xD0, 0xC9, 0x29, 0x0F, 0xD1, 0x01, 0x23, - 0xD1, 0xB2, 0x3A, 0x4D, 0x5B, 0x02, 0x08, 0xE0, 0x0B, 0xE0, 0x02, 0x88, 0x54, 0x1C, 0x04, 0x80, - 0x49, 0x1C, 0xEC, 0x68, 0x52, 0x00, 0xC9, 0xB2, 0xA3, 0x52, 0x1C, 0x29, 0xF5, 0xD3, 0x09, 0xB0, - 0xF0, 0xBD, 0x31, 0x4F, 0xB6, 0x46, 0x40, 0x3F, 0x08, 0x9E, 0x3B, 0x7A, 0xA1, 0xB2, 0x01, 0x2E, - 0x06, 0xD1, 0x04, 0x99, 0xFB, 0x7A, 0x61, 0x18, 0x03, 0x9C, 0x02, 0x9D, 0x89, 0xB2, 0xA6, 0x46, - 0x05, 0x9C, 0xE4, 0x7A, 0xE4, 0x06, 0x02, 0xD5, 0x00, 0x24, 0xA6, 0x46, 0x00, 0xE0, 0x00, 0x25, - 0x01, 0x9C, 0x49, 0x00, 0x09, 0x19, 0x8C, 0x46, 0x00, 0x21, 0x10, 0xE0, 0x0C, 0x46, 0x5C, 0x43, - 0x64, 0x19, 0x66, 0x46, 0x64, 0x00, 0x37, 0x5B, 0x04, 0x88, 0x52, 0x1C, 0x66, 0x1C, 0x06, 0x80, - 0x1E, 0x4E, 0x49, 0x1C, 0xF6, 0x68, 0x64, 0x00, 0x92, 0xB2, 0xC9, 0xB2, 0x37, 0x53, 0x1A, 0x4C, - 0x40, 0x3C, 0xA6, 0x7B, 0xB1, 0x42, 0xE9, 0xD3, 0x00, 0x21, 0x18, 0x4F, 0x0F, 0xE0, 0x0C, 0x46, - 0x5C, 0x43, 0x74, 0x44, 0x66, 0x46, 0x64, 0x00, 0x36, 0x5B, 0x04, 0x88, 0x52, 0x1C, 0x65, 0x1C, - 0x05, 0x80, 0x49, 0x1C, 0xFD, 0x68, 0x64, 0x00, 0x92, 0xB2, 0xC9, 0xB2, 0x2E, 0x53, 0x0E, 0x4C, - 0x40, 0x3C, 0xE4, 0x7B, 0xA1, 0x42, 0xEA, 0xD3, 0x0B, 0x49, 0x40, 0x39, 0xC9, 0x79, 0xCA, 0x29, - 0x01, 0xD0, 0xC9, 0x29, 0xAB, 0xD1, 0x01, 0x23, 0xD1, 0xB2, 0x5B, 0x02, 0x07, 0xE0, 0x02, 0x88, - 0x54, 0x1C, 0x04, 0x80, 0x49, 0x1C, 0xFC, 0x68, 0x52, 0x00, 0xC9, 0xB2, 0xA3, 0x52, 0x20, 0x29, - 0xF5, 0xD3, 0x9C, 0xE7, 0x14, 0x04, 0x00, 0x20, 0x64, 0x01, 0x00, 0x20, 0xA4, 0x01, 0x00, 0x20, - 0x00, 0xBF, 0x0A, 0x49, 0x89, 0x69, 0x09, 0x02, 0xC9, 0x0F, 0x01, 0x29, 0xF9, 0xD0, 0x07, 0x49, - 0x08, 0x60, 0x0A, 0x28, 0x09, 0xD1, 0x00, 0xBF, 0x04, 0x49, 0x89, 0x69, 0x09, 0x02, 0xC9, 0x0F, - 0x01, 0x29, 0xF9, 0xD0, 0x0D, 0x21, 0x01, 0x4A, 0x11, 0x60, 0x70, 0x47, 0x00, 0x00, 0x15, 0x40, - 0x00, 0x20, 0x07, 0xE0, 0x00, 0x21, 0x42, 0x00, 0x05, 0x4B, 0x99, 0x52, 0x42, 0x00, 0x05, 0x4B, - 0x99, 0x52, 0x40, 0x1C, 0x20, 0x28, 0xF5, 0xDB, 0x00, 0x21, 0x03, 0x4A, 0x11, 0x70, 0x70, 0x47, - 0xC4, 0x04, 0x00, 0x20, 0x04, 0x05, 0x00, 0x20, 0xCC, 0x00, 0x00, 0x20, 0xF0, 0xB5, 0x0E, 0x4E, - 0x8C, 0x46, 0x34, 0x7C, 0x31, 0x46, 0x80, 0x31, 0xA4, 0x1C, 0x44, 0x43, 0x01, 0x25, 0xCC, 0x61, - 0x0F, 0xE0, 0x14, 0x46, 0x04, 0xE0, 0xCE, 0x69, 0x0F, 0x69, 0x36, 0x19, 0x64, 0x1C, 0xBD, 0x55, - 0x9C, 0x42, 0xF8, 0xDD, 0x04, 0x4E, 0xCC, 0x69, 0x36, 0x7C, 0xA4, 0x19, 0xA4, 0x1C, 0x40, 0x1C, - 0xCC, 0x61, 0x60, 0x45, 0xED, 0xDD, 0xF0, 0xBD, 0x24, 0x01, 0x00, 0x20, 0x10, 0xB5, 0x00, 0x24, - 0x05, 0xE0, 0x00, 0x20, 0x61, 0x00, 0x17, 0x4A, 0x12, 0x68, 0x50, 0x52, 0x64, 0x1C, 0x23, 0x20, - 0x40, 0x01, 0x84, 0x42, 0xF5, 0xDB, 0xFB, 0xF7, 0x37, 0xFD, 0xF8, 0xF7, 0x45, 0xFB, 0x00, 0x24, - 0x08, 0xE0, 0x60, 0x00, 0x10, 0x49, 0x09, 0x68, 0x08, 0x5A, 0x61, 0x00, 0x0D, 0x4A, 0x12, 0x68, - 0x50, 0x52, 0x64, 0x1C, 0x23, 0x20, 0x40, 0x01, 0x84, 0x42, 0xF2, 0xDB, 0x64, 0x20, 0x0B, 0x49, - 0x08, 0x60, 0x01, 0x20, 0x0A, 0x49, 0x08, 0x70, 0x00, 0x20, 0x0A, 0x49, 0x08, 0x70, 0x0A, 0x49, - 0x08, 0x70, 0x0A, 0x49, 0x08, 0x80, 0x0A, 0x49, 0x08, 0x70, 0x23, 0x20, 0x80, 0x01, 0x00, 0xF0, - 0xC3, 0xFA, 0x10, 0xBD, 0xAC, 0x01, 0x00, 0x20, 0xB0, 0x01, 0x00, 0x20, 0xFC, 0x00, 0x00, 0x20, - 0xF6, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x20, 0xF7, 0x00, 0x00, 0x20, 0xF8, 0x00, 0x00, 0x20, - 0xFA, 0x00, 0x00, 0x20, 0x10, 0xB5, 0x0A, 0x48, 0xC0, 0x7A, 0x80, 0x07, 0x80, 0x0F, 0x05, 0xD0, - 0x01, 0x28, 0x08, 0xD0, 0x02, 0x28, 0x06, 0xD0, 0x03, 0x28, 0x03, 0xD1, 0x01, 0x21, 0x03, 0x20, - 0xFA, 0xF7, 0x46, 0xF9, 0x10, 0xBD, 0x01, 0x21, 0x03, 0x20, 0xF9, 0xF7, 0xC5, 0xFE, 0x10, 0xBD, - 0x14, 0x04, 0x00, 0x20, 0xF0, 0xB5, 0x87, 0xB0, 0x00, 0x20, 0x05, 0x25, 0x05, 0x90, 0x03, 0x22, - 0x06, 0xA9, 0x06, 0x95, 0x02, 0x90, 0x03, 0x90, 0x04, 0x92, 0x00, 0x91, 0x01, 0x90, 0x01, 0x22, - 0x3C, 0x49, 0xA0, 0x20, 0x05, 0xAB, 0xFC, 0xF7, 0x13, 0xFB, 0x00, 0x21, 0x03, 0x22, 0x04, 0x92, - 0x0A, 0x46, 0x01, 0x26, 0x02, 0x91, 0x03, 0x91, 0x06, 0x96, 0x06, 0xA9, 0x01, 0x92, 0x00, 0x91, - 0x32, 0x46, 0x35, 0x49, 0xA0, 0x20, 0x05, 0xAB, 0xFC, 0xF7, 0x02, 0xFB, 0x00, 0x21, 0x03, 0x22, - 0x04, 0x92, 0x0A, 0x46, 0x23, 0x27, 0x02, 0x91, 0x03, 0x91, 0x06, 0x97, 0x06, 0xA9, 0x01, 0x92, - 0x00, 0x91, 0x01, 0x22, 0x2C, 0x49, 0xA0, 0x20, 0x05, 0xAB, 0xFC, 0xF7, 0xF1, 0xFA, 0x00, 0x21, - 0x03, 0x22, 0x04, 0x92, 0x0A, 0x46, 0x45, 0x24, 0x02, 0x91, 0x03, 0x91, 0x06, 0x94, 0x06, 0xA9, - 0x01, 0x92, 0x00, 0x91, 0x01, 0x22, 0x24, 0x49, 0xA0, 0x20, 0x05, 0xAB, 0xFC, 0xF7, 0xE0, 0xFA, - 0x00, 0x21, 0x03, 0x22, 0x04, 0x92, 0x0A, 0x46, 0x67, 0x20, 0x02, 0x91, 0x03, 0x91, 0x06, 0x90, - 0x06, 0xA9, 0x01, 0x92, 0x00, 0x91, 0x01, 0x22, 0x1B, 0x49, 0xA0, 0x20, 0x05, 0xAB, 0xFC, 0xF7, - 0xCF, 0xFA, 0x05, 0xAA, 0x00, 0x92, 0x06, 0x95, 0x01, 0x22, 0x16, 0x49, 0xA0, 0x20, 0x06, 0xAB, - 0xFC, 0xF7, 0x9A, 0xFD, 0x05, 0xAA, 0x00, 0x92, 0x06, 0x96, 0x01, 0x22, 0x12, 0x49, 0xA0, 0x20, - 0x06, 0xAB, 0xFC, 0xF7, 0x91, 0xFD, 0x05, 0xAA, 0x00, 0x92, 0x06, 0x97, 0x01, 0x22, 0x0E, 0x49, - 0xA0, 0x20, 0x06, 0xAB, 0xFC, 0xF7, 0x88, 0xFD, 0x05, 0xAA, 0x00, 0x92, 0x06, 0x94, 0x01, 0x22, - 0x09, 0x49, 0xA0, 0x20, 0x06, 0xAB, 0xFC, 0xF7, 0x7F, 0xFD, 0x67, 0x20, 0x05, 0xAA, 0x00, 0x92, - 0x06, 0x90, 0x01, 0x22, 0x04, 0x49, 0xA0, 0x20, 0x06, 0xAB, 0xFC, 0xF7, 0x75, 0xFD, 0x07, 0xB0, - 0xF0, 0xBD, 0x00, 0x00, 0x03, 0x13, 0x00, 0x00, 0x04, 0x14, 0x00, 0x00, 0xF8, 0xB5, 0x7D, 0x20, - 0x70, 0x4C, 0xC0, 0x00, 0xE0, 0x81, 0x40, 0x42, 0x20, 0x82, 0x6F, 0x49, 0x00, 0x20, 0x08, 0x60, - 0x6E, 0x49, 0x08, 0x60, 0x6E, 0x49, 0x08, 0x70, 0x6E, 0x49, 0x08, 0x70, 0x6E, 0x48, 0x00, 0x90, - 0xC1, 0x7A, 0x20, 0x46, 0x40, 0x38, 0x8B, 0x06, 0x05, 0x7C, 0x01, 0x7A, 0x7F, 0xD5, 0x00, 0x26, - 0x4D, 0x43, 0x37, 0x46, 0x15, 0xE0, 0x63, 0x48, 0x6A, 0x00, 0x40, 0x30, 0x40, 0x68, 0x61, 0x49, - 0x12, 0x18, 0x73, 0x00, 0x18, 0x18, 0x40, 0x39, 0x0B, 0x7B, 0x49, 0x7A, 0x00, 0xF0, 0x44, 0xFB, - 0x5C, 0x48, 0x40, 0x38, 0x40, 0x7A, 0x36, 0x18, 0x5A, 0x48, 0x40, 0x38, 0x00, 0x7B, 0x2D, 0x18, - 0x7F, 0x1C, 0x58, 0x49, 0x40, 0x39, 0x88, 0x7B, 0x87, 0x42, 0xE4, 0xDB, 0x08, 0x46, 0x80, 0x7A, - 0x00, 0x28, 0x1C, 0xD0, 0x00, 0x27, 0x15, 0xE0, 0x52, 0x48, 0x6A, 0x00, 0x40, 0x30, 0x40, 0x68, - 0x50, 0x49, 0x12, 0x18, 0x73, 0x00, 0x18, 0x18, 0x40, 0x39, 0x4B, 0x7B, 0x89, 0x7A, 0x00, 0xF0, - 0x23, 0xFB, 0x4C, 0x48, 0x40, 0x38, 0x80, 0x7A, 0x36, 0x18, 0x4A, 0x48, 0x40, 0x38, 0x40, 0x7B, - 0x2D, 0x18, 0x7F, 0x1C, 0x47, 0x49, 0x40, 0x39, 0x88, 0x7B, 0x87, 0x42, 0xE4, 0xDB, 0x00, 0x27, - 0x15, 0xE0, 0x44, 0x48, 0x6A, 0x00, 0x40, 0x30, 0x40, 0x68, 0x42, 0x49, 0x12, 0x18, 0x73, 0x00, - 0x18, 0x18, 0x40, 0x39, 0x0B, 0x7B, 0x49, 0x7A, 0x00, 0xF0, 0x06, 0xFB, 0x3D, 0x48, 0x40, 0x38, - 0x40, 0x7A, 0x36, 0x18, 0x3B, 0x48, 0x40, 0x38, 0x00, 0x7B, 0x2D, 0x18, 0x7F, 0x1C, 0x39, 0x49, - 0x40, 0x39, 0xC8, 0x7B, 0x87, 0x42, 0xE4, 0xDB, 0x08, 0x46, 0x81, 0x7A, 0x00, 0x29, 0x47, 0xD0, - 0x00, 0x27, 0x15, 0xE0, 0x33, 0x48, 0x6A, 0x00, 0x40, 0x30, 0x40, 0x68, 0x31, 0x49, 0x12, 0x18, - 0x73, 0x00, 0x18, 0x18, 0x40, 0x39, 0x4B, 0x7B, 0x89, 0x7A, 0x00, 0xF0, 0xE5, 0xFA, 0x2D, 0x48, - 0x40, 0x38, 0x80, 0x7A, 0x36, 0x18, 0x2B, 0x48, 0x40, 0x38, 0x40, 0x7B, 0x2D, 0x18, 0x7F, 0x1C, - 0x28, 0x49, 0x40, 0x39, 0xC8, 0x7B, 0x87, 0x42, 0xE4, 0xDB, 0x29, 0xE0, 0xFF, 0xE7, 0xC2, 0x7A, - 0x00, 0x20, 0x8F, 0x18, 0x23, 0x49, 0x6F, 0x43, 0x40, 0x39, 0x0A, 0x7D, 0x80, 0x31, 0x4B, 0x68, - 0x1C, 0xE0, 0x45, 0x00, 0x10, 0x26, 0x59, 0x5F, 0xA6, 0x5F, 0xB1, 0x42, 0x01, 0xDD, 0x21, 0x82, - 0x04, 0xE0, 0x0E, 0x26, 0xA6, 0x5F, 0xB1, 0x42, 0x00, 0xDA, 0xE1, 0x81, 0x59, 0x5F, 0x91, 0x42, - 0x04, 0xDD, 0x19, 0x4E, 0x35, 0x68, 0x49, 0x19, 0x31, 0x60, 0x06, 0xE0, 0x55, 0x42, 0xA9, 0x42, - 0x03, 0xDA, 0x16, 0x4D, 0x2E, 0x68, 0x71, 0x1A, 0x29, 0x60, 0x40, 0x1C, 0xB8, 0x42, 0xE0, 0xDB, - 0x00, 0x98, 0x00, 0x7C, 0x00, 0x09, 0x1A, 0xD0, 0x0E, 0x48, 0x20, 0x30, 0x01, 0x8B, 0xC2, 0x8A, - 0x89, 0x1A, 0x09, 0xB2, 0x11, 0x4A, 0x41, 0x83, 0x91, 0x42, 0x02, 0xDC, 0xD2, 0x43, 0x91, 0x42, - 0x00, 0xDA, 0x42, 0x83, 0x1A, 0x21, 0x41, 0x5E, 0x10, 0x20, 0x20, 0x5E, 0x81, 0x42, 0x01, 0xDD, - 0x21, 0x82, 0x04, 0xE0, 0x0E, 0x20, 0x20, 0x5E, 0x81, 0x42, 0x00, 0xDA, 0xE1, 0x81, 0x00, 0x20, - 0xF8, 0xBD, 0x00, 0x00, 0x64, 0x01, 0x00, 0x20, 0xD0, 0x00, 0x00, 0x20, 0xD4, 0x00, 0x00, 0x20, - 0xF0, 0x00, 0x00, 0x20, 0xF1, 0x00, 0x00, 0x20, 0x14, 0x04, 0x00, 0x20, 0xFF, 0x01, 0x00, 0x00, - 0xF8, 0xB5, 0x3D, 0x48, 0x32, 0x21, 0x2E, 0x22, 0x41, 0x5E, 0x82, 0x5E, 0x40, 0x30, 0x00, 0x90, - 0x40, 0x89, 0x89, 0x1A, 0x81, 0x42, 0x09, 0xD1, 0x37, 0x48, 0x34, 0x21, 0x30, 0x22, 0x41, 0x5E, - 0x82, 0x5E, 0x00, 0x98, 0x89, 0x1A, 0x80, 0x89, 0x81, 0x42, 0x63, 0xD0, 0x00, 0x24, 0x32, 0x48, - 0x80, 0x30, 0x80, 0x6A, 0x01, 0x5D, 0x86, 0x46, 0x00, 0x29, 0x57, 0xD0, 0x2E, 0x48, 0x34, 0x27, - 0x30, 0x22, 0xC7, 0x5F, 0x82, 0x5E, 0x00, 0x98, 0x83, 0x89, 0xB8, 0x1A, 0x84, 0x46, 0x98, 0x42, - 0x1F, 0xDA, 0x29, 0x48, 0x65, 0x00, 0x80, 0x30, 0x46, 0x6A, 0x39, 0x46, 0x70, 0x5F, 0xC8, 0x31, - 0x88, 0x42, 0x03, 0xDA, 0x11, 0x46, 0xC8, 0x39, 0x88, 0x42, 0x03, 0xDA, 0x00, 0x20, 0x71, 0x46, - 0x08, 0x55, 0x0E, 0xE0, 0xB8, 0x42, 0x02, 0xDB, 0x5B, 0x1E, 0x73, 0x53, 0x09, 0xE0, 0x90, 0x42, - 0x01, 0xDC, 0x00, 0x20, 0x04, 0xE0, 0x80, 0x1A, 0x58, 0x43, 0x61, 0x46, 0xF7, 0xF7, 0xF0, 0xFC, - 0x70, 0x53, 0x19, 0x48, 0x32, 0x27, 0x2E, 0x22, 0xC7, 0x5F, 0x82, 0x5E, 0x00, 0x98, 0x43, 0x89, - 0xB8, 0x1A, 0x84, 0x46, 0x98, 0x42, 0x21, 0xDA, 0x13, 0x48, 0x65, 0x00, 0x80, 0x30, 0x06, 0x6A, - 0x11, 0x46, 0x70, 0x5F, 0xC8, 0x39, 0x88, 0x42, 0x03, 0xDB, 0x39, 0x46, 0xC8, 0x31, 0x88, 0x42, - 0x05, 0xDB, 0x0D, 0x49, 0x00, 0x20, 0x80, 0x31, 0x89, 0x6A, 0x08, 0x55, 0x0E, 0xE0, 0xB8, 0x42, - 0x02, 0xDB, 0x5B, 0x1E, 0x73, 0x53, 0x09, 0xE0, 0x90, 0x42, 0x01, 0xDC, 0x00, 0x20, 0x04, 0xE0, - 0x80, 0x1A, 0x58, 0x43, 0x61, 0x46, 0xF7, 0xF7, 0xC3, 0xFC, 0x70, 0x53, 0x64, 0x1C, 0xE4, 0xB2, - 0x0A, 0x2C, 0x9C, 0xD3, 0xF8, 0xBD, 0x00, 0x00, 0x24, 0x01, 0x00, 0x20, 0xFF, 0xB5, 0x87, 0xB0, - 0x00, 0x20, 0x02, 0x90, 0x01, 0x90, 0x10, 0x98, 0x11, 0x99, 0x10, 0x1A, 0x15, 0x46, 0x5A, 0x1A, - 0x40, 0x43, 0x52, 0x43, 0x87, 0x18, 0x08, 0x98, 0x07, 0x99, 0xC2, 0x1A, 0x49, 0x1B, 0x49, 0x43, - 0x52, 0x43, 0x8C, 0x18, 0x1E, 0x46, 0x43, 0x4A, 0x03, 0x92, 0x42, 0x4B, 0x10, 0x98, 0x11, 0x79, - 0x12, 0x78, 0x20, 0x3B, 0x06, 0x91, 0x19, 0x7E, 0x05, 0x92, 0x04, 0x91, 0x85, 0x42, 0x16, 0xD1, - 0x11, 0x98, 0x86, 0x42, 0x13, 0xD1, 0x06, 0x98, 0x00, 0x28, 0x03, 0xD0, 0x01, 0x20, 0x80, 0x04, - 0x84, 0x42, 0x6D, 0xDC, 0x01, 0x20, 0xC0, 0x05, 0x84, 0x42, 0x66, 0xDB, 0x09, 0x20, 0x00, 0x05, - 0x84, 0x42, 0x65, 0xDA, 0x01, 0x2A, 0x63, 0xD1, 0x01, 0x29, 0x61, 0xD1, 0x5D, 0xE0, 0x38, 0x1B, - 0x00, 0x90, 0x01, 0xD5, 0x40, 0x42, 0x00, 0x90, 0xA7, 0x42, 0x05, 0xDD, 0x00, 0x2C, 0x00, 0xD1, - 0x01, 0x24, 0x21, 0x46, 0x38, 0x46, 0x04, 0xE0, 0x00, 0x2F, 0x00, 0xD1, 0x01, 0x27, 0x39, 0x46, - 0x20, 0x46, 0xF7, 0xF7, 0x6D, 0xFC, 0xFF, 0x21, 0x01, 0x31, 0x88, 0x42, 0x07, 0xDD, 0x04, 0x99, - 0x05, 0x98, 0x88, 0x42, 0x44, 0xD0, 0x03, 0x98, 0xC8, 0x21, 0x01, 0x71, 0x40, 0xE0, 0x0A, 0x28, - 0x05, 0xDD, 0x20, 0x49, 0x1B, 0x22, 0x20, 0x39, 0x8A, 0x56, 0x02, 0x2A, 0x38, 0xDC, 0x06, 0x99, - 0x00, 0x29, 0x05, 0xD0, 0x0A, 0x28, 0x33, 0xDC, 0x01, 0x21, 0x89, 0x04, 0x8C, 0x42, 0x2F, 0xDC, - 0x32, 0x28, 0x2A, 0xDB, 0x19, 0x20, 0x00, 0x99, 0x00, 0x04, 0x81, 0x42, 0x25, 0xDB, 0x10, 0x98, - 0x85, 0x42, 0x02, 0xDD, 0x07, 0x98, 0x85, 0x42, 0x05, 0xDB, 0x10, 0x98, 0x85, 0x42, 0x04, 0xDA, - 0x07, 0x98, 0x85, 0x42, 0x01, 0xDD, 0x01, 0x20, 0x02, 0x90, 0x11, 0x98, 0x86, 0x42, 0x02, 0xDD, - 0x08, 0x98, 0x86, 0x42, 0x05, 0xDB, 0x11, 0x98, 0x86, 0x42, 0x04, 0xDA, 0x08, 0x98, 0x86, 0x42, - 0x01, 0xDD, 0x01, 0x20, 0x01, 0x90, 0x01, 0x99, 0x02, 0x98, 0x08, 0x43, 0x08, 0xD0, 0x01, 0x20, - 0x80, 0x04, 0x87, 0x42, 0x04, 0xDD, 0x84, 0x42, 0x02, 0xDD, 0x00, 0x20, 0x0B, 0xB0, 0xF0, 0xBD, - 0x01, 0x20, 0xFB, 0xE7, 0x44, 0x01, 0x00, 0x20, 0xF1, 0xB5, 0x01, 0xF0, 0xF5, 0xFB, 0x59, 0x20, - 0x23, 0x49, 0x08, 0x60, 0x16, 0x20, 0x08, 0x60, 0x88, 0x20, 0x08, 0x60, 0xF9, 0xF7, 0x8E, 0xFB, - 0x7D, 0x24, 0xA4, 0x02, 0x05, 0xE0, 0x20, 0x46, 0xF9, 0xF7, 0x98, 0xFB, 0xFF, 0x34, 0xFF, 0x34, - 0x02, 0x34, 0x1C, 0x49, 0x00, 0x98, 0x40, 0x18, 0xA0, 0x42, 0xF4, 0xD8, 0x1A, 0x48, 0x00, 0x68, - 0x40, 0x1C, 0x19, 0x49, 0x08, 0x60, 0x08, 0x46, 0x05, 0x68, 0x29, 0x46, 0x7D, 0x20, 0x80, 0x02, - 0xF9, 0xF7, 0xD8, 0xFB, 0x00, 0x26, 0x15, 0x48, 0x07, 0x68, 0x12, 0x4C, 0x24, 0x1F, 0x0C, 0xE0, - 0x7D, 0x88, 0x76, 0x19, 0x2D, 0x04, 0x38, 0x88, 0x86, 0x19, 0x38, 0x88, 0x45, 0x19, 0x3F, 0x1D, - 0x29, 0x46, 0x20, 0x46, 0xF9, 0xF7, 0xC6, 0xFB, 0x24, 0x1D, 0x0A, 0x49, 0x09, 0x1F, 0x00, 0x98, - 0x40, 0x18, 0xA0, 0x42, 0xEC, 0xD8, 0x31, 0x46, 0x20, 0x46, 0xF9, 0xF7, 0xBB, 0xFB, 0xF9, 0xF7, - 0x4D, 0xFB, 0x00, 0x20, 0x02, 0x49, 0x08, 0x60, 0x02, 0x20, 0x01, 0xF0, 0xEF, 0xFB, 0xF8, 0xBD, - 0x00, 0x01, 0x00, 0x50, 0x08, 0xF4, 0x01, 0x00, 0xFC, 0x00, 0x00, 0x20, 0xAC, 0x01, 0x00, 0x20, - 0xF8, 0xB5, 0x01, 0x20, 0xFE, 0xF7, 0x54, 0xF9, 0x15, 0x4E, 0x59, 0x20, 0x30, 0x60, 0x16, 0x20, - 0x30, 0x60, 0x88, 0x20, 0x30, 0x60, 0xF9, 0xF7, 0x39, 0xFB, 0x1F, 0x20, 0x00, 0x03, 0xF9, 0xF7, - 0x45, 0xFB, 0x11, 0x4F, 0x0F, 0x4C, 0x10, 0x4D, 0x5E, 0x37, 0x00, 0x21, 0x03, 0x20, 0x0A, 0x02, - 0x21, 0x5C, 0x11, 0x43, 0x40, 0x1E, 0xFA, 0xD5, 0x28, 0x46, 0xF9, 0xF7, 0x8B, 0xFB, 0x24, 0x1D, - 0x2D, 0x1D, 0xBD, 0x42, 0xF1, 0xD3, 0x1F, 0x20, 0x08, 0x49, 0x00, 0x03, 0xF9, 0xF7, 0x82, 0xFB, - 0xF9, 0xF7, 0x14, 0xFB, 0x00, 0x20, 0x30, 0x60, 0x01, 0x20, 0xFE, 0xF7, 0x47, 0xF9, 0xF8, 0xBD, - 0x00, 0x01, 0x00, 0x50, 0x19, 0x04, 0x00, 0x20, 0x04, 0xF0, 0x01, 0x00, 0x21, 0x43, 0x65, 0x87, - 0xF8, 0xB5, 0x00, 0x20, 0x5E, 0x49, 0x08, 0x70, 0x5E, 0x48, 0x00, 0x68, 0x00, 0x28, 0x12, 0xDC, - 0x00, 0x24, 0x08, 0xE0, 0x60, 0x00, 0x5C, 0x49, 0x09, 0x68, 0x09, 0x5A, 0x60, 0x00, 0x5B, 0x4A, - 0x12, 0x68, 0x11, 0x52, 0x64, 0x1C, 0x23, 0x20, 0x40, 0x01, 0x84, 0x42, 0xF2, 0xDB, 0x00, 0x20, - 0x54, 0x49, 0x08, 0x60, 0x9F, 0xE0, 0x53, 0x48, 0x00, 0x68, 0x05, 0x28, 0x01, 0xDC, 0x01, 0x25, - 0x10, 0xE0, 0x50, 0x48, 0x00, 0x68, 0x0A, 0x28, 0x01, 0xDC, 0x03, 0x25, 0x0A, 0xE0, 0x4D, 0x48, - 0x00, 0x68, 0x0A, 0x28, 0x06, 0xDD, 0x4E, 0x48, 0x00, 0x78, 0x01, 0x28, 0x01, 0xDD, 0x01, 0x25, - 0x00, 0xE0, 0x03, 0x25, 0x00, 0x24, 0x25, 0xE0, 0x60, 0x00, 0x47, 0x49, 0x09, 0x68, 0x08, 0x5E, - 0x28, 0x41, 0x06, 0x46, 0x60, 0x00, 0x44, 0x49, 0x09, 0x68, 0x08, 0x5E, 0x00, 0x28, 0x03, 0xDD, - 0x0A, 0x2E, 0x0C, 0xDA, 0x0A, 0x26, 0x0A, 0xE0, 0x60, 0x00, 0x3F, 0x49, 0x09, 0x68, 0x08, 0x5E, - 0x00, 0x28, 0x04, 0xDA, 0x09, 0x20, 0xC0, 0x43, 0x86, 0x42, 0x00, 0xDD, 0x06, 0x46, 0x60, 0x00, - 0x3A, 0x49, 0x09, 0x68, 0x08, 0x5A, 0x80, 0x19, 0x00, 0xB2, 0x61, 0x00, 0x37, 0x4A, 0x12, 0x68, - 0x50, 0x52, 0x64, 0x1C, 0x23, 0x20, 0x40, 0x01, 0x84, 0x42, 0xD5, 0xDB, 0xFE, 0xF7, 0xAC, 0xFF, - 0x34, 0x48, 0x00, 0x21, 0x41, 0x5E, 0x00, 0x29, 0x0D, 0xDD, 0x01, 0x46, 0x00, 0x20, 0x08, 0x5E, - 0x28, 0x41, 0x06, 0x46, 0x0A, 0x2E, 0x00, 0xDA, 0x0A, 0x26, 0x2E, 0x48, 0x00, 0x88, 0x80, 0x1B, - 0x00, 0xB2, 0x2C, 0x49, 0x08, 0x80, 0x2C, 0x48, 0x00, 0x21, 0x41, 0x5E, 0x00, 0x29, 0x0F, 0xDA, - 0x01, 0x46, 0x00, 0x20, 0x08, 0x5E, 0x28, 0x41, 0x06, 0x46, 0x09, 0x20, 0xC0, 0x43, 0x86, 0x42, - 0x00, 0xDD, 0x06, 0x46, 0x24, 0x48, 0x00, 0x88, 0x80, 0x1B, 0x00, 0xB2, 0x22, 0x49, 0x08, 0x80, - 0x1C, 0x48, 0x00, 0x68, 0x0A, 0x28, 0x2D, 0xDB, 0x20, 0x4A, 0x11, 0x78, 0xCA, 0x0F, 0x52, 0x18, - 0x52, 0x10, 0x1C, 0x4B, 0x00, 0x27, 0xDF, 0x5F, 0xBA, 0x42, 0x23, 0xDD, 0x1B, 0x4A, 0x10, 0x78, - 0xC2, 0x0F, 0x12, 0x18, 0x52, 0x10, 0x52, 0x42, 0x17, 0x4B, 0x00, 0x27, 0xDF, 0x5F, 0xBA, 0x42, - 0x18, 0xDA, 0x13, 0x48, 0x00, 0x78, 0x03, 0x28, 0x05, 0xDA, 0x11, 0x48, 0x00, 0x78, 0x40, 0x1C, - 0x0F, 0x49, 0x08, 0x70, 0x0E, 0xE0, 0x01, 0x20, 0x11, 0x49, 0x08, 0x70, 0x00, 0x20, 0x11, 0x49, - 0x08, 0x80, 0x0B, 0x49, 0x08, 0x70, 0x07, 0x48, 0x00, 0x68, 0x64, 0x28, 0x02, 0xDA, 0x64, 0x20, - 0x04, 0x49, 0x08, 0x60, 0x00, 0xBF, 0x23, 0x20, 0x80, 0x01, 0xFF, 0xF7, 0xB5, 0xFE, 0xF8, 0xBD, - 0xDB, 0x00, 0x00, 0x20, 0xFC, 0x00, 0x00, 0x20, 0xB0, 0x01, 0x00, 0x20, 0xAC, 0x01, 0x00, 0x20, - 0xFA, 0x00, 0x00, 0x20, 0x74, 0x01, 0x00, 0x20, 0x72, 0x01, 0x00, 0x20, 0x01, 0x01, 0x00, 0x20, - 0xF6, 0x00, 0x00, 0x20, 0xF8, 0x00, 0x00, 0x20, 0xFF, 0xB5, 0x91, 0xB0, 0x00, 0x20, 0x11, 0x99, - 0x12, 0x9A, 0x08, 0x5E, 0x52, 0x1E, 0x07, 0x90, 0x06, 0x90, 0x0E, 0xD0, 0x11, 0x99, 0x53, 0x00, - 0xC9, 0x5E, 0x07, 0x9B, 0x40, 0x18, 0x99, 0x42, 0x01, 0xDD, 0x07, 0x91, 0x03, 0xE0, 0x06, 0x9B, - 0x99, 0x42, 0x00, 0xDA, 0x06, 0x91, 0x52, 0x1E, 0xF0, 0xD1, 0x00, 0x27, 0x13, 0x99, 0x14, 0x9D, - 0xCF, 0x5F, 0x6D, 0x1E, 0x05, 0x97, 0x03, 0x97, 0x0F, 0xD0, 0x13, 0x99, 0x6A, 0x00, 0x8E, 0x5E, - 0x03, 0x99, 0x89, 0x19, 0x03, 0x91, 0x05, 0x99, 0x8E, 0x42, 0x01, 0xDD, 0x05, 0x96, 0x02, 0xE0, - 0xBE, 0x42, 0x00, 0xDA, 0x37, 0x46, 0x6D, 0x1E, 0xEF, 0xD1, 0x06, 0x9A, 0x07, 0x99, 0x89, 0x1A, - 0xFB, 0x4A, 0x16, 0x7D, 0x14, 0x46, 0x40, 0x34, 0xB1, 0x42, 0x59, 0xDA, 0x05, 0x99, 0xC9, 0x1B, - 0xB1, 0x42, 0x55, 0xDA, 0x12, 0x99, 0xF7, 0xF7, 0x7B, 0xFA, 0xB1, 0x08, 0x88, 0x42, 0x01, 0xDD, - 0xF4, 0x4A, 0x03, 0xE0, 0x49, 0x42, 0x88, 0x42, 0x03, 0xDA, 0xF3, 0x4A, 0x11, 0x78, 0x49, 0x1C, - 0x11, 0x70, 0x06, 0x9A, 0x07, 0x99, 0x89, 0x18, 0xCA, 0x0F, 0x51, 0x18, 0x49, 0x10, 0x81, 0x42, - 0x04, 0xDD, 0x06, 0x99, 0x40, 0x18, 0xC1, 0x0F, 0x08, 0x18, 0x40, 0x10, 0x12, 0x9A, 0x10, 0xE0, - 0x11, 0x99, 0x53, 0x00, 0xC9, 0x5E, 0x10, 0x25, 0x65, 0x5F, 0x09, 0x1A, 0xA9, 0x42, 0x01, 0xDD, - 0x21, 0x82, 0x04, 0xE0, 0x0E, 0x25, 0x65, 0x5F, 0xA9, 0x42, 0x00, 0xDA, 0xE1, 0x81, 0x11, 0x9D, - 0xE9, 0x52, 0x52, 0x1E, 0xEC, 0xD5, 0x14, 0x99, 0x03, 0x98, 0xF7, 0xF7, 0x49, 0xFA, 0x05, 0x99, - 0xC9, 0x19, 0xCA, 0x0F, 0x51, 0x18, 0x49, 0x10, 0x81, 0x42, 0x03, 0xDD, 0xC0, 0x19, 0xC1, 0x0F, - 0x08, 0x18, 0x40, 0x10, 0x14, 0x9A, 0x10, 0xE0, 0x13, 0x99, 0x53, 0x00, 0xC9, 0x5E, 0x10, 0x25, - 0x65, 0x5F, 0x09, 0x1A, 0xA9, 0x42, 0x01, 0xDD, 0x21, 0x82, 0x04, 0xE0, 0x0E, 0x25, 0x65, 0x5F, - 0xA9, 0x42, 0x00, 0xDA, 0xE1, 0x81, 0x13, 0x9D, 0xE9, 0x52, 0x52, 0x1E, 0xEC, 0xD5, 0x98, 0xE2, - 0x06, 0x99, 0xB9, 0x42, 0x00, 0xDB, 0x39, 0x46, 0x05, 0x9A, 0x07, 0x98, 0x90, 0x42, 0x00, 0xDC, - 0x10, 0x46, 0x40, 0x1A, 0x03, 0x21, 0xF7, 0xF7, 0x1B, 0xFA, 0xC5, 0x49, 0x03, 0x90, 0xC9, 0x7C, - 0x88, 0x42, 0x01, 0xDD, 0x03, 0x91, 0x04, 0xE0, 0x03, 0x99, 0x70, 0x08, 0x88, 0x42, 0x00, 0xDD, - 0x03, 0x90, 0xC2, 0x48, 0x10, 0x90, 0xC1, 0x7A, 0x12, 0x9A, 0x14, 0x98, 0x10, 0x18, 0xBC, 0x4A, - 0x0F, 0x90, 0x80, 0x32, 0x48, 0x07, 0x0E, 0xD5, 0x0F, 0x98, 0x40, 0x1E, 0x07, 0xE0, 0x11, 0x99, - 0x6B, 0x00, 0xC9, 0x5E, 0x83, 0x00, 0x96, 0x6C, 0x40, 0x1E, 0x6D, 0x1C, 0xF1, 0x50, 0x12, 0x99, - 0x8D, 0x42, 0xF4, 0xDB, 0x0C, 0xE0, 0x14, 0x98, 0x07, 0xE0, 0x11, 0x99, 0x6B, 0x00, 0xC9, 0x5E, - 0x83, 0x00, 0x96, 0x6C, 0x40, 0x1C, 0x6D, 0x1C, 0xF1, 0x50, 0x12, 0x99, 0x8D, 0x42, 0xF4, 0xDB, - 0x10, 0x98, 0xC0, 0x7A, 0x00, 0x07, 0x0F, 0xD5, 0x14, 0x99, 0x49, 0x1E, 0x00, 0x20, 0x07, 0xE0, - 0x13, 0x9B, 0x45, 0x00, 0x5B, 0x5F, 0x8D, 0x00, 0x96, 0x6C, 0x49, 0x1E, 0x40, 0x1C, 0x73, 0x51, - 0x14, 0x9B, 0x98, 0x42, 0xF4, 0xDB, 0x0D, 0xE0, 0x00, 0x21, 0x08, 0x46, 0x07, 0xE0, 0x13, 0x9B, - 0x45, 0x00, 0x5B, 0x5F, 0x8D, 0x00, 0x96, 0x6C, 0x49, 0x1C, 0x40, 0x1C, 0x73, 0x51, 0x14, 0x9B, - 0x98, 0x42, 0xF4, 0xDB, 0x0F, 0x98, 0x08, 0x90, 0x00, 0x20, 0x02, 0x90, 0x01, 0x20, 0x93, 0x6C, - 0x01, 0x90, 0x00, 0x21, 0x18, 0x68, 0x05, 0x91, 0x04, 0x91, 0x5B, 0x68, 0xD5, 0x6C, 0xC3, 0x1A, - 0x01, 0x26, 0x2B, 0x60, 0x01, 0x46, 0x32, 0x46, 0x09, 0x96, 0x94, 0xE0, 0x90, 0x4F, 0x92, 0x00, - 0x80, 0x37, 0x0E, 0x92, 0xBB, 0x6C, 0xFD, 0x6C, 0xD6, 0x18, 0x40, 0x3E, 0x9B, 0x58, 0xF6, 0x6B, - 0x9B, 0x1B, 0xAB, 0x50, 0x00, 0xD5, 0x5B, 0x42, 0x03, 0x9A, 0x93, 0x42, 0x72, 0xD9, 0x00, 0x23, - 0x48, 0xE0, 0x87, 0x4D, 0x03, 0x9F, 0x80, 0x35, 0x6D, 0x6D, 0x9A, 0x00, 0xFE, 0x0F, 0x0D, 0x95, - 0xF6, 0x19, 0xAD, 0x58, 0x76, 0x10, 0x0C, 0x95, 0xAD, 0x1B, 0x2F, 0x46, 0x8D, 0x42, 0x06, 0xDC, - 0x7F, 0x4D, 0x80, 0x35, 0x2D, 0x6D, 0xAD, 0x58, 0xAD, 0x19, 0x8D, 0x42, 0x19, 0xDA, 0x87, 0x42, - 0x06, 0xDC, 0x7B, 0x4D, 0x80, 0x35, 0x2D, 0x6D, 0xAD, 0x58, 0xAD, 0x19, 0x85, 0x42, 0x10, 0xDA, - 0x8F, 0x1B, 0x0C, 0x9D, 0xBC, 0x46, 0xBD, 0x42, 0x02, 0xDB, 0x37, 0x18, 0xBD, 0x42, 0x08, 0xDD, - 0x73, 0x4D, 0x80, 0x35, 0x2D, 0x6D, 0xAD, 0x58, 0x65, 0x45, 0x1A, 0xDB, 0x36, 0x18, 0xB5, 0x42, - 0x17, 0xDC, 0x6F, 0x4E, 0x9D, 0x00, 0x80, 0x36, 0x76, 0x6D, 0x75, 0x59, 0x8D, 0x42, 0x01, 0xDD, - 0x0D, 0x9D, 0xA9, 0x50, 0x6A, 0x4D, 0x80, 0x35, 0x2D, 0x6D, 0xAE, 0x58, 0x86, 0x42, 0x00, 0xDA, - 0xA8, 0x50, 0x67, 0x4D, 0x01, 0x9E, 0x80, 0x35, 0xAD, 0x6D, 0xAF, 0x58, 0xBE, 0x19, 0xAE, 0x50, - 0x03, 0xE0, 0x5B, 0x1C, 0x02, 0x9A, 0x93, 0x42, 0xB3, 0xDB, 0x02, 0x9A, 0x93, 0x42, 0x0F, 0xD1, - 0x5F, 0x4E, 0x02, 0x46, 0x02, 0x98, 0x80, 0x36, 0x35, 0x6D, 0x80, 0x00, 0x01, 0x9F, 0x2A, 0x50, - 0x02, 0x9D, 0x72, 0x6D, 0x6D, 0x1C, 0x11, 0x50, 0xB1, 0x6D, 0x2D, 0xB2, 0x0F, 0x50, 0x02, 0x95, - 0x57, 0x4A, 0x01, 0x20, 0x01, 0x90, 0x80, 0x32, 0x91, 0x6C, 0x92, 0x6D, 0x0E, 0x98, 0x9D, 0x00, - 0x52, 0x59, 0x08, 0x58, 0x04, 0x9D, 0x01, 0x46, 0xAA, 0x42, 0x11, 0xDD, 0x05, 0x93, 0x04, 0x92, - 0x0E, 0xE0, 0xFF, 0xE7, 0x01, 0x9A, 0x0E, 0x9B, 0x52, 0x1C, 0x12, 0xB2, 0x01, 0x92, 0xBA, 0x6C, - 0xD2, 0x58, 0x82, 0x42, 0x01, 0xDD, 0x10, 0x46, 0x02, 0xE0, 0x8A, 0x42, 0x00, 0xDA, 0x11, 0x46, - 0x09, 0x9A, 0x52, 0x1C, 0x09, 0x92, 0x08, 0x9B, 0x9A, 0x42, 0x00, 0xDA, 0x66, 0xE7, 0x00, 0x22, - 0x45, 0xE0, 0x43, 0x4F, 0x03, 0x9B, 0x80, 0x37, 0x62, 0x46, 0xDE, 0x0F, 0x7D, 0x6D, 0x92, 0x00, - 0xF3, 0x18, 0x0B, 0x95, 0xAE, 0x58, 0x5B, 0x10, 0xF5, 0x1A, 0x0A, 0x95, 0x8D, 0x42, 0x04, 0xDC, - 0x3D, 0x6D, 0xAD, 0x58, 0xED, 0x18, 0x8D, 0x42, 0x16, 0xDA, 0x0A, 0x9D, 0x85, 0x42, 0x04, 0xDC, - 0x3D, 0x6D, 0xAD, 0x58, 0xED, 0x18, 0x85, 0x42, 0x0E, 0xDA, 0xCF, 0x1A, 0xBE, 0x42, 0x02, 0xDB, - 0x1D, 0x18, 0xAE, 0x42, 0x08, 0xDD, 0x32, 0x4D, 0x80, 0x35, 0x2D, 0x6D, 0xAD, 0x58, 0xBD, 0x42, - 0x1B, 0xDB, 0x1B, 0x18, 0x9D, 0x42, 0x18, 0xDC, 0x2D, 0x4D, 0x63, 0x46, 0x80, 0x35, 0x6D, 0x6D, - 0x9B, 0x00, 0xEB, 0x58, 0x8B, 0x42, 0x01, 0xDD, 0x0B, 0x9B, 0x99, 0x50, 0x28, 0x4B, 0x80, 0x33, - 0x1B, 0x6D, 0x9D, 0x58, 0x85, 0x42, 0x00, 0xDA, 0x98, 0x50, 0x25, 0x4B, 0x01, 0x9D, 0x80, 0x33, - 0x9B, 0x6D, 0x9E, 0x58, 0x75, 0x19, 0x9D, 0x50, 0x05, 0xE0, 0x62, 0x46, 0x52, 0x1C, 0x02, 0x9B, - 0x94, 0x46, 0x9A, 0x42, 0xB5, 0xDB, 0x02, 0x9A, 0x94, 0x45, 0x0A, 0xD1, 0x03, 0x46, 0x90, 0x00, - 0x1B, 0x4A, 0x01, 0x9E, 0x80, 0x32, 0x15, 0x6D, 0x2B, 0x50, 0x53, 0x6D, 0x19, 0x50, 0x91, 0x6D, - 0x0E, 0x50, 0x17, 0x4A, 0x60, 0x46, 0x80, 0x32, 0x91, 0x6D, 0x80, 0x00, 0x08, 0x58, 0x04, 0x99, - 0x88, 0x42, 0x01, 0xDC, 0x05, 0x98, 0x01, 0xE0, 0x60, 0x46, 0x05, 0x90, 0x81, 0x00, 0x10, 0x6D, - 0x53, 0x6D, 0x40, 0x58, 0x5F, 0x58, 0x84, 0x46, 0x00, 0x20, 0x01, 0x26, 0x13, 0xE0, 0x0C, 0x49, - 0x82, 0x00, 0x80, 0x31, 0x8B, 0x6C, 0x9B, 0x58, 0xBB, 0x42, 0x09, 0xDB, 0x63, 0x45, 0x07, 0xDC, - 0xCD, 0x6D, 0x00, 0x23, 0xAB, 0x50, 0x8B, 0x6C, 0x09, 0x6E, 0x9B, 0x58, 0x8B, 0x50, 0x01, 0xE0, - 0xC9, 0x6D, 0x8E, 0x50, 0x40, 0x1C, 0x08, 0x99, 0x88, 0x42, 0xE8, 0xDB, 0x00, 0x20, 0x3B, 0xE0, - 0x24, 0x01, 0x00, 0x20, 0xF0, 0x00, 0x00, 0x20, 0xF1, 0x00, 0x00, 0x20, 0x14, 0x04, 0x00, 0x20, - 0x09, 0x9A, 0x00, 0x20, 0x04, 0x21, 0x52, 0x1E, 0x0E, 0xD4, 0x7B, 0x4B, 0x9E, 0x6C, 0xDD, 0x6D, - 0x93, 0x00, 0xEF, 0x58, 0x01, 0x2F, 0x05, 0xD0, 0xF3, 0x58, 0x49, 0x1E, 0x18, 0x18, 0x09, 0xB2, - 0x02, 0x29, 0x01, 0xD0, 0x52, 0x1E, 0xF3, 0xD5, 0x73, 0x4B, 0x09, 0x9A, 0xDD, 0x6D, 0x52, 0x1C, - 0x9E, 0x6C, 0x0A, 0xE0, 0x93, 0x00, 0xEF, 0x58, 0x01, 0x2F, 0x05, 0xD0, 0xF3, 0x58, 0x49, 0x1E, - 0x18, 0x18, 0x09, 0xB2, 0x00, 0x29, 0x03, 0xD0, 0x52, 0x1C, 0x08, 0x9B, 0x9A, 0x42, 0xF1, 0xDB, - 0x04, 0x22, 0x51, 0x1A, 0x09, 0xB2, 0xF7, 0xF7, 0x5B, 0xF8, 0x67, 0x4A, 0x09, 0x99, 0x12, 0x6E, - 0x89, 0x00, 0x50, 0x50, 0x09, 0x98, 0x40, 0x1C, 0x08, 0x99, 0x09, 0x90, 0x88, 0x42, 0xC7, 0xDB, - 0x10, 0x98, 0xC0, 0x7A, 0x61, 0x4B, 0x40, 0x07, 0x2E, 0xD5, 0x0F, 0x9A, 0x52, 0x1E, 0x00, 0x21, - 0x26, 0xE0, 0x5D, 0x4F, 0x11, 0x98, 0x3F, 0x6E, 0x4D, 0x00, 0x96, 0x00, 0x40, 0x5F, 0xBE, 0x59, - 0x52, 0x1E, 0x80, 0x1B, 0x10, 0x26, 0xA6, 0x5F, 0xB0, 0x42, 0x01, 0xDD, 0x20, 0x82, 0x04, 0xE0, - 0x0E, 0x26, 0xA6, 0x5F, 0xB0, 0x42, 0x00, 0xDA, 0xE0, 0x81, 0x53, 0x4E, 0x80, 0x3E, 0x36, 0x7D, - 0xB0, 0x42, 0x04, 0xDD, 0x52, 0x4F, 0x3E, 0x68, 0x36, 0x18, 0x3E, 0x60, 0x05, 0xE0, 0x76, 0x42, - 0xB0, 0x42, 0x02, 0xDA, 0x1E, 0x68, 0x36, 0x1A, 0x1E, 0x60, 0x11, 0x9E, 0x49, 0x1C, 0x70, 0x53, - 0x12, 0x98, 0x81, 0x42, 0xD5, 0xDB, 0x2C, 0xE0, 0x00, 0x21, 0x14, 0x9A, 0x26, 0xE0, 0x46, 0x4F, - 0x11, 0x98, 0x3F, 0x6E, 0x4D, 0x00, 0x96, 0x00, 0x40, 0x5F, 0xBE, 0x59, 0x52, 0x1C, 0x80, 0x1B, - 0x10, 0x26, 0xA6, 0x5F, 0xB0, 0x42, 0x01, 0xDD, 0x20, 0x82, 0x04, 0xE0, 0x0E, 0x26, 0xA6, 0x5F, - 0xB0, 0x42, 0x00, 0xDA, 0xE0, 0x81, 0x3C, 0x4E, 0x80, 0x3E, 0x36, 0x7D, 0xB0, 0x42, 0x04, 0xDD, - 0x3B, 0x4F, 0x3E, 0x68, 0x36, 0x18, 0x3E, 0x60, 0x05, 0xE0, 0x76, 0x42, 0xB0, 0x42, 0x02, 0xDA, - 0x1E, 0x68, 0x36, 0x1A, 0x1E, 0x60, 0x11, 0x9E, 0x49, 0x1C, 0x70, 0x53, 0x12, 0x98, 0x81, 0x42, - 0xD5, 0xDB, 0x10, 0x98, 0xC0, 0x7A, 0x00, 0x07, 0x2E, 0xD5, 0x14, 0x9A, 0x52, 0x1E, 0x00, 0x21, - 0x26, 0xE0, 0x2D, 0x4F, 0x13, 0x98, 0x3F, 0x6E, 0x4D, 0x00, 0x96, 0x00, 0x40, 0x5F, 0xBE, 0x59, - 0x52, 0x1E, 0x80, 0x1B, 0x10, 0x26, 0xA6, 0x5F, 0xB0, 0x42, 0x01, 0xDD, 0x20, 0x82, 0x04, 0xE0, - 0x0E, 0x26, 0xA6, 0x5F, 0xB0, 0x42, 0x00, 0xDA, 0xE0, 0x81, 0x23, 0x4E, 0x80, 0x3E, 0x36, 0x7D, - 0xB0, 0x42, 0x04, 0xDD, 0x22, 0x4F, 0x3E, 0x68, 0x36, 0x18, 0x3E, 0x60, 0x05, 0xE0, 0x76, 0x42, - 0xB0, 0x42, 0x02, 0xDA, 0x1E, 0x68, 0x36, 0x1A, 0x1E, 0x60, 0x13, 0x9E, 0x49, 0x1C, 0x70, 0x53, - 0x14, 0x98, 0x81, 0x42, 0xD5, 0xDB, 0x2C, 0xE0, 0x00, 0x22, 0x11, 0x46, 0x26, 0xE0, 0x16, 0x4F, - 0x13, 0x98, 0x3F, 0x6E, 0x4D, 0x00, 0x96, 0x00, 0x40, 0x5F, 0xBE, 0x59, 0x52, 0x1C, 0x80, 0x1B, - 0x10, 0x26, 0xA6, 0x5F, 0xB0, 0x42, 0x01, 0xDD, 0x20, 0x82, 0x04, 0xE0, 0x0E, 0x26, 0xA6, 0x5F, - 0xB0, 0x42, 0x00, 0xDA, 0xE0, 0x81, 0x0C, 0x4E, 0x80, 0x3E, 0x36, 0x7D, 0xB0, 0x42, 0x04, 0xDD, - 0x0B, 0x4F, 0x3E, 0x68, 0x36, 0x18, 0x3E, 0x60, 0x05, 0xE0, 0x76, 0x42, 0xB0, 0x42, 0x02, 0xDA, - 0x1E, 0x68, 0x36, 0x1A, 0x1E, 0x60, 0x13, 0x9E, 0x49, 0x1C, 0x70, 0x53, 0x14, 0x98, 0x81, 0x42, - 0xD5, 0xDB, 0x00, 0x20, 0x15, 0xB0, 0xF0, 0xBD, 0xA4, 0x01, 0x00, 0x20, 0xD4, 0x00, 0x00, 0x20, - 0xD0, 0x00, 0x00, 0x20, 0xF1, 0xB5, 0x30, 0x48, 0x80, 0x79, 0xFF, 0x28, 0x5B, 0xD0, 0x00, 0x9E, - 0x00, 0x25, 0x28, 0x46, 0xFA, 0xF7, 0x64, 0xFE, 0x04, 0x1E, 0x1E, 0xDB, 0x2A, 0x4A, 0x14, 0x32, - 0x10, 0x5D, 0x01, 0x06, 0x19, 0xD5, 0x17, 0x46, 0x08, 0x37, 0x40, 0x06, 0x39, 0x5D, 0x40, 0x0E, - 0x01, 0x22, 0xF9, 0xF7, 0xBB, 0xF9, 0xF0, 0x07, 0x0F, 0xD1, 0x23, 0x48, 0x39, 0x5D, 0x00, 0x78, - 0x00, 0x28, 0x22, 0x48, 0x00, 0x5D, 0x04, 0xD0, 0x40, 0x06, 0x40, 0x0E, 0xF8, 0xF7, 0x6C, 0xFF, - 0x03, 0xE0, 0x40, 0x06, 0x40, 0x0E, 0xF9, 0xF7, 0xE3, 0xF9, 0x6D, 0x1C, 0xED, 0xB2, 0x76, 0x08, - 0x08, 0x2D, 0xD6, 0xD3, 0x00, 0x9D, 0x00, 0x26, 0x30, 0x46, 0xFA, 0xF7, 0x39, 0xFE, 0x04, 0x1E, - 0x1A, 0xDB, 0x16, 0x48, 0x00, 0x5D, 0x01, 0x06, 0x16, 0xD5, 0xE9, 0x07, 0x14, 0xD0, 0x12, 0x4F, - 0x39, 0x78, 0x00, 0x29, 0x12, 0x49, 0x09, 0x5D, 0x04, 0xD0, 0x40, 0x06, 0x40, 0x0E, 0xF9, 0xF7, - 0xC7, 0xF9, 0x03, 0xE0, 0x40, 0x06, 0x40, 0x0E, 0xF8, 0xF7, 0x46, 0xFF, 0x39, 0x78, 0x60, 0x00, - 0x40, 0x18, 0xB4, 0x30, 0xFE, 0xF7, 0x40, 0xF9, 0x76, 0x1C, 0xF6, 0xB2, 0x6D, 0x08, 0x08, 0x2E, - 0xDA, 0xD3, 0x00, 0x98, 0x00, 0x28, 0x01, 0xD1, 0xBC, 0x20, 0x02, 0xE0, 0xFF, 0x28, 0x02, 0xD1, - 0xBD, 0x20, 0xFE, 0xF7, 0x31, 0xF9, 0xF8, 0xBD, 0x80, 0x03, 0x00, 0x20, 0x94, 0x03, 0x00, 0x20, - 0x9C, 0x03, 0x00, 0x20, 0x04, 0x49, 0x8A, 0x7E, 0x04, 0x49, 0x50, 0x43, 0x48, 0x61, 0x00, 0x20, - 0x88, 0x61, 0x05, 0x20, 0x08, 0x61, 0x70, 0x47, 0x1C, 0x00, 0x00, 0x20, 0x00, 0xE0, 0x00, 0xE0, - 0x10, 0xB5, 0xFC, 0xF7, 0xCF, 0xF8, 0x00, 0x20, 0xFE, 0xF7, 0xF4, 0xFB, 0x11, 0x4C, 0x00, 0x20, - 0x20, 0x73, 0x60, 0x73, 0xA0, 0x73, 0xE1, 0x7E, 0xE1, 0x85, 0xE0, 0x72, 0xE0, 0x70, 0x20, 0x71, - 0x20, 0x76, 0xA0, 0x72, 0x20, 0x86, 0xE0, 0x73, 0x60, 0x74, 0x0B, 0x4A, 0x02, 0x21, 0x11, 0x70, - 0x0A, 0x49, 0x08, 0x80, 0xE0, 0x7D, 0x00, 0x28, 0x08, 0xD1, 0x00, 0xF0, 0xCD, 0xFE, 0x01, 0x20, - 0xE0, 0x75, 0xE0, 0x74, 0x60, 0x71, 0x02, 0x20, 0x00, 0xF0, 0x08, 0xFF, 0x04, 0x48, 0xFF, 0xF7, - 0xC9, 0xFF, 0x10, 0xBD, 0x1C, 0x00, 0x00, 0x20, 0x1C, 0x02, 0x00, 0x20, 0x1A, 0x02, 0x00, 0x20, - 0xA0, 0x86, 0x01, 0x00, 0x70, 0xB5, 0x20, 0x48, 0x00, 0x69, 0x45, 0x07, 0x6D, 0x0F, 0x05, 0x2D, - 0x00, 0xD9, 0x04, 0x25, 0x02, 0x2D, 0x03, 0xD0, 0xA8, 0x00, 0x1C, 0x49, 0x0C, 0x58, 0x1E, 0xE0, - 0x19, 0x48, 0x00, 0x6A, 0x00, 0x04, 0x86, 0x0F, 0x01, 0x2E, 0x00, 0xD9, 0x76, 0x1E, 0x16, 0x4A, - 0x12, 0x6A, 0x12, 0x03, 0xD2, 0x0F, 0x01, 0xD0, 0x15, 0x4A, 0x00, 0xE0, 0x15, 0x4A, 0x12, 0x4B, - 0x1B, 0x6A, 0xDB, 0x05, 0xDB, 0x0D, 0x9B, 0x1C, 0x10, 0x46, 0x58, 0x43, 0x0E, 0x4A, 0x12, 0x6A, - 0x92, 0x04, 0xD2, 0x0E, 0x91, 0x1C, 0xF6, 0xF7, 0xA9, 0xFE, 0xF0, 0x40, 0x04, 0x46, 0x0A, 0x48, - 0x80, 0x69, 0x00, 0x07, 0x00, 0x0F, 0x41, 0x1C, 0x20, 0x46, 0xF6, 0xF7, 0x9F, 0xFE, 0x0A, 0x49, - 0x08, 0x60, 0x0A, 0x49, 0x08, 0x48, 0x00, 0x68, 0x4A, 0x10, 0x80, 0x18, 0xF6, 0xF7, 0x96, 0xFE, - 0x07, 0x49, 0x08, 0x60, 0x70, 0xBD, 0x00, 0x00, 0x00, 0x02, 0x00, 0x50, 0x08, 0x00, 0x00, 0x20, - 0x00, 0x80, 0x51, 0x01, 0x00, 0x1B, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x20, 0x40, 0x42, 0x0F, 0x00, - 0x04, 0x00, 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0xF8, 0xB5, 0x28, 0x4A, 0x00, 0x24, 0x26, 0x48, - 0x13, 0x46, 0x44, 0x72, 0xC4, 0x71, 0xC4, 0x81, 0x15, 0x46, 0x16, 0x46, 0x22, 0x4F, 0x04, 0x72, - 0x10, 0x33, 0x20, 0x35, 0x30, 0x36, 0x20, 0x46, 0x2C, 0x37, 0x41, 0x00, 0x54, 0x52, 0x5C, 0x52, - 0x6C, 0x52, 0x74, 0x52, 0x1C, 0x49, 0x24, 0x31, 0x0C, 0x54, 0x1D, 0x49, 0x09, 0x18, 0xA0, 0x31, - 0x09, 0x79, 0x09, 0x09, 0x49, 0x1C, 0x39, 0x54, 0x40, 0x1C, 0xC0, 0xB2, 0x08, 0x28, 0xEC, 0xD3, - 0x17, 0x4D, 0xA0, 0x35, 0x28, 0x7B, 0x00, 0x07, 0x00, 0x0F, 0x03, 0x28, 0x23, 0xD1, 0x12, 0x4E, - 0x74, 0x70, 0x28, 0x7B, 0x40, 0x06, 0xC0, 0x0F, 0x30, 0x70, 0xE8, 0x78, 0xB0, 0x70, 0x40, 0x00, - 0x03, 0x21, 0xF6, 0xF7, 0x4B, 0xFE, 0xF0, 0x70, 0x28, 0x7C, 0x00, 0x07, 0x00, 0x0F, 0xC0, 0xB2, - 0x81, 0x00, 0x40, 0x18, 0x0F, 0x30, 0x30, 0x71, 0x28, 0x7B, 0x80, 0x06, 0x80, 0x0F, 0xB0, 0x71, - 0x28, 0x7B, 0x00, 0x06, 0x01, 0xD4, 0xFF, 0x20, 0xB0, 0x71, 0x00, 0x20, 0xFF, 0xF7, 0xBA, 0xFE, - 0x74, 0x81, 0x04, 0x48, 0xB0, 0x81, 0xF8, 0xBD, 0x80, 0x03, 0x00, 0x20, 0x38, 0x1A, 0x00, 0x20, - 0xB4, 0x03, 0x00, 0x20, 0x54, 0x0B, 0x00, 0x00, 0x10, 0xB5, 0x05, 0x48, 0xC4, 0x69, 0x05, 0x48, - 0x00, 0x68, 0x00, 0x28, 0x03, 0xD0, 0x20, 0x46, 0x02, 0x49, 0x09, 0x68, 0x88, 0x47, 0x10, 0xBD, - 0x00, 0x00, 0x05, 0x40, 0x1C, 0x01, 0x00, 0x20, 0x10, 0xB5, 0x05, 0x48, 0xC4, 0x69, 0x05, 0x48, - 0x00, 0x68, 0x00, 0x28, 0x03, 0xD0, 0x20, 0x46, 0x02, 0x49, 0x09, 0x68, 0x88, 0x47, 0x10, 0xBD, - 0x00, 0x00, 0x15, 0x40, 0x20, 0x01, 0x00, 0x20, 0x10, 0xB5, 0x49, 0x48, 0x40, 0x68, 0x49, 0x49, - 0x08, 0x60, 0x08, 0x46, 0x00, 0x68, 0x04, 0x21, 0x08, 0x42, 0x31, 0xD0, 0x44, 0x48, 0x40, 0x69, - 0xC0, 0x07, 0xC0, 0x0F, 0x44, 0x49, 0x08, 0x60, 0x04, 0x20, 0x41, 0x49, 0x48, 0x60, 0x42, 0x48, - 0x00, 0x68, 0xC0, 0x07, 0xC0, 0x0F, 0x0D, 0xD0, 0x40, 0x48, 0x00, 0x68, 0x00, 0x28, 0x75, 0xD1, - 0x01, 0x20, 0x3E, 0x49, 0x08, 0x60, 0x7D, 0x20, 0x00, 0x01, 0x39, 0x49, 0x08, 0x61, 0x0F, 0x20, - 0x08, 0x60, 0x6B, 0xE0, 0x00, 0x20, 0x39, 0x49, 0x08, 0x60, 0x3B, 0x20, 0x40, 0x01, 0x34, 0x49, - 0x08, 0x61, 0x00, 0x20, 0x36, 0x49, 0x08, 0x70, 0x36, 0x49, 0x08, 0x70, 0x30, 0x49, 0x08, 0x60, - 0x08, 0x46, 0x00, 0x68, 0x04, 0x21, 0x88, 0x43, 0x00, 0x1D, 0x2D, 0x49, 0x08, 0x60, 0x55, 0xE0, - 0x2E, 0x48, 0x00, 0x68, 0x00, 0x28, 0x03, 0xD1, 0x0B, 0x20, 0x29, 0x49, 0x48, 0x60, 0x4D, 0xE0, - 0x28, 0x48, 0x00, 0x68, 0x08, 0x21, 0x08, 0x42, 0x03, 0xD0, 0x08, 0x20, 0x24, 0x49, 0x48, 0x60, - 0x44, 0xE0, 0x24, 0x48, 0x00, 0x68, 0xC0, 0x07, 0xC0, 0x0F, 0x34, 0xD0, 0x20, 0x48, 0x00, 0x69, - 0x25, 0x49, 0x08, 0x60, 0x01, 0x20, 0x1E, 0x49, 0x48, 0x60, 0x23, 0x48, 0x00, 0x68, 0xC0, 0x07, - 0xC0, 0x0F, 0x08, 0xD0, 0x7D, 0x20, 0x00, 0x01, 0x08, 0x61, 0x07, 0x20, 0x1B, 0x49, 0x08, 0x60, - 0xF9, 0xF7, 0xEC, 0xFC, 0x2A, 0xE0, 0x1C, 0x48, 0x00, 0x68, 0x02, 0x21, 0x08, 0x42, 0x0A, 0xD0, - 0x1F, 0x20, 0x80, 0x01, 0x12, 0x49, 0x08, 0x61, 0x14, 0x48, 0x00, 0x68, 0x20, 0x21, 0x08, 0x43, - 0x12, 0x49, 0x08, 0x60, 0x1A, 0xE0, 0x14, 0x48, 0x00, 0x68, 0x04, 0x21, 0x08, 0x42, 0x15, 0xD0, - 0x7D, 0x20, 0x00, 0x01, 0x0A, 0x49, 0x08, 0x61, 0x0C, 0x48, 0x00, 0x68, 0x20, 0x21, 0x88, 0x43, - 0x0A, 0x49, 0x08, 0x60, 0x0A, 0xE0, 0x07, 0x48, 0x00, 0x68, 0x02, 0x21, 0x08, 0x42, 0x05, 0xD0, - 0x03, 0x48, 0xC0, 0x68, 0x09, 0x49, 0x08, 0x60, 0xF9, 0xF7, 0xAC, 0xFE, 0x10, 0xBD, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x40, 0x5C, 0x03, 0x00, 0x20, 0x58, 0x03, 0x00, 0x20, 0x60, 0x03, 0x00, 0x20, - 0x32, 0x03, 0x00, 0x20, 0x4C, 0x03, 0x00, 0x20, 0x50, 0x03, 0x00, 0x20, 0x54, 0x03, 0x00, 0x20, - 0x0E, 0xB5, 0x05, 0x20, 0xF8, 0xF7, 0x32, 0xFE, 0xE1, 0x20, 0x40, 0x02, 0x00, 0x90, 0x03, 0x20, - 0x6B, 0x46, 0x18, 0x71, 0x00, 0x20, 0x58, 0x71, 0x98, 0x71, 0xD8, 0x71, 0x01, 0x20, 0x69, 0x46, - 0x00, 0x05, 0xF9, 0xF7, 0x85, 0xFB, 0x0E, 0xBD, 0x00, 0x29, 0x05, 0xD0, 0x0B, 0x48, 0x01, 0x7F, - 0x03, 0x29, 0x01, 0xD0, 0x00, 0x21, 0x01, 0x77, 0x09, 0x48, 0x01, 0x6A, 0x42, 0x02, 0x91, 0x43, - 0x01, 0x62, 0x01, 0x6A, 0xC2, 0x01, 0x91, 0x43, 0x01, 0x62, 0x01, 0x68, 0x80, 0x22, 0x91, 0x43, - 0x01, 0x60, 0x01, 0x68, 0x52, 0x00, 0x91, 0x43, 0x01, 0x60, 0x70, 0x47, 0x1C, 0x00, 0x00, 0x20, - 0x00, 0x02, 0x00, 0x50, 0xF8, 0xB5, 0x00, 0x24, 0x25, 0x46, 0x27, 0x46, 0x45, 0x4E, 0x13, 0xE0, - 0x6D, 0x1C, 0xF8, 0xF7, 0x81, 0xFC, 0x7D, 0x20, 0xC0, 0x00, 0x85, 0x42, 0x02, 0xD1, 0xFE, 0xF7, - 0x61, 0xFE, 0x09, 0xE0, 0x19, 0x20, 0x80, 0x01, 0x85, 0x42, 0x05, 0xD1, 0x00, 0x25, 0xFB, 0xF7, - 0x8F, 0xFE, 0x7F, 0x1C, 0x07, 0x2F, 0x02, 0xDC, 0x30, 0x79, 0x01, 0x28, 0xE8, 0xD0, 0x3A, 0x48, - 0x84, 0x46, 0x00, 0x7B, 0x38, 0x4B, 0xC0, 0x06, 0x60, 0x3B, 0x80, 0x0F, 0x01, 0x28, 0x01, 0xD1, - 0x00, 0x25, 0x03, 0xE0, 0x35, 0x48, 0x01, 0x25, 0x00, 0x78, 0x18, 0x70, 0x31, 0x49, 0x48, 0x8D, - 0x58, 0x55, 0x86, 0x46, 0x6D, 0x1C, 0x00, 0x0A, 0x58, 0x55, 0x88, 0x7A, 0x6D, 0x1C, 0x01, 0x28, - 0x01, 0xD1, 0x0A, 0x20, 0x88, 0x72, 0x2E, 0x49, 0x00, 0x20, 0x09, 0x78, 0x00, 0x91, 0x39, 0xE0, - 0x01, 0x21, 0x81, 0x40, 0x72, 0x46, 0x11, 0x42, 0x32, 0xD0, 0x61, 0x46, 0x09, 0x7B, 0xC9, 0x06, - 0x89, 0x0F, 0x01, 0x29, 0x13, 0xD1, 0x27, 0x4A, 0x41, 0x00, 0x12, 0x68, 0x56, 0x5A, 0x5E, 0x55, - 0x52, 0x5A, 0x6D, 0x1C, 0x12, 0x12, 0x5A, 0x55, 0x23, 0x4A, 0x6D, 0x1C, 0x12, 0x68, 0x6E, 0x1C, - 0x57, 0x5A, 0x5F, 0x55, 0x51, 0x5A, 0x09, 0x12, 0x99, 0x55, 0xAD, 0x1C, 0x18, 0xE0, 0x1D, 0x4A, - 0x41, 0x00, 0x12, 0x68, 0x56, 0x5A, 0x36, 0x12, 0x5E, 0x55, 0x6D, 0x1C, 0x52, 0x5A, 0x5A, 0x55, - 0x19, 0x4A, 0x6D, 0x1C, 0x12, 0x68, 0x56, 0x5A, 0x36, 0x12, 0x5E, 0x55, 0x6D, 0x1C, 0x51, 0x5A, - 0x59, 0x55, 0x16, 0x49, 0x6D, 0x1C, 0x09, 0x68, 0x6E, 0x1C, 0x09, 0x5C, 0x59, 0x55, 0x35, 0x46, - 0x00, 0x99, 0x40, 0x1C, 0x88, 0x42, 0xC3, 0xDB, 0x60, 0x46, 0x00, 0x7B, 0xC0, 0x06, 0x80, 0x0F, - 0x09, 0xD1, 0x01, 0x20, 0x03, 0xE0, 0x19, 0x5C, 0x09, 0x19, 0xCC, 0xB2, 0x40, 0x1C, 0xA8, 0x42, - 0xF9, 0xDB, 0x60, 0x42, 0x58, 0x55, 0x03, 0x48, 0x01, 0x21, 0x01, 0x71, 0x00, 0x21, 0x01, 0x76, - 0xF8, 0xBD, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x20, 0x14, 0x04, 0x00, 0x20, 0x41, 0x01, 0x00, 0x20, - 0x36, 0x01, 0x00, 0x20, 0xC4, 0x01, 0x00, 0x20, 0xC8, 0x01, 0x00, 0x20, 0xCC, 0x01, 0x00, 0x20, - 0x70, 0xB5, 0x1B, 0x48, 0x00, 0x24, 0x04, 0x5F, 0x1A, 0x48, 0x00, 0x26, 0x86, 0x5F, 0x1A, 0x48, - 0x00, 0x78, 0x01, 0x28, 0x00, 0xD1, 0x70, 0xBD, 0xFE, 0xF7, 0x68, 0xFE, 0x14, 0x49, 0x00, 0x20, - 0x08, 0x5E, 0xA0, 0x42, 0x03, 0xDD, 0x00, 0x20, 0x08, 0x5E, 0x00, 0x1B, 0x03, 0xE0, 0x10, 0x48, - 0x00, 0x21, 0x41, 0x5E, 0x60, 0x1A, 0x05, 0xB2, 0x10, 0x48, 0x00, 0x78, 0x85, 0x42, 0x01, 0xDD, - 0x00, 0x20, 0xE8, 0xE7, 0x0B, 0x49, 0x00, 0x20, 0x08, 0x5E, 0xB0, 0x42, 0x03, 0xDD, 0x00, 0x20, - 0x08, 0x5E, 0x80, 0x1B, 0x03, 0xE0, 0x07, 0x48, 0x00, 0x21, 0x41, 0x5E, 0x70, 0x1A, 0x05, 0xB2, - 0x06, 0x48, 0x00, 0x78, 0x85, 0x42, 0x01, 0xDD, 0x00, 0x20, 0xD4, 0xE7, 0x01, 0x20, 0xD2, 0xE7, - 0x72, 0x01, 0x00, 0x20, 0x74, 0x01, 0x00, 0x20, 0xEE, 0x00, 0x00, 0x20, 0x01, 0x01, 0x00, 0x20, - 0x00, 0x20, 0x22, 0x49, 0x08, 0x70, 0x22, 0x49, 0x08, 0x70, 0x22, 0x49, 0x08, 0x70, 0x22, 0x49, - 0x08, 0x70, 0x22, 0x48, 0x22, 0x49, 0x08, 0x60, 0x00, 0x20, 0x22, 0x49, 0x08, 0x80, 0x22, 0x49, - 0x08, 0x80, 0x22, 0x49, 0x08, 0x80, 0x22, 0x48, 0x22, 0x49, 0x08, 0x80, 0x00, 0x20, 0x22, 0x49, - 0x08, 0x80, 0x22, 0x49, 0x08, 0x70, 0x22, 0x49, 0x08, 0x70, 0x22, 0x49, 0x08, 0x70, 0x22, 0x49, - 0x08, 0x70, 0x22, 0x49, 0x08, 0x70, 0x22, 0x49, 0x08, 0x70, 0x22, 0x49, 0x08, 0x80, 0x22, 0x49, - 0x08, 0x70, 0x22, 0x49, 0x08, 0x70, 0x22, 0x49, 0x08, 0x80, 0x22, 0x49, 0x08, 0x70, 0x22, 0x48, - 0x00, 0x78, 0x22, 0x49, 0x08, 0x70, 0x22, 0x48, 0x00, 0x78, 0x14, 0x21, 0x48, 0x43, 0x21, 0x49, - 0x08, 0x80, 0x21, 0x48, 0x00, 0x78, 0x00, 0x28, 0x06, 0xD0, 0x1D, 0x48, 0x00, 0x78, 0x40, 0x00, - 0x14, 0x21, 0x48, 0x43, 0x1B, 0x49, 0x08, 0x80, 0x70, 0x47, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x20, - 0xD9, 0x00, 0x00, 0x20, 0xDA, 0x00, 0x00, 0x20, 0xDB, 0x00, 0x00, 0x20, 0x60, 0xEA, 0x00, 0x00, - 0xDC, 0x00, 0x00, 0x20, 0xE0, 0x00, 0x00, 0x20, 0xE2, 0x00, 0x00, 0x20, 0xE4, 0x00, 0x00, 0x20, - 0x98, 0x3A, 0x00, 0x00, 0xE6, 0x00, 0x00, 0x20, 0xE8, 0x00, 0x00, 0x20, 0xEA, 0x00, 0x00, 0x20, - 0xEB, 0x00, 0x00, 0x20, 0xEC, 0x00, 0x00, 0x20, 0xED, 0x00, 0x00, 0x20, 0xEE, 0x00, 0x00, 0x20, - 0xEF, 0x00, 0x00, 0x20, 0xF2, 0x00, 0x00, 0x20, 0xF4, 0x00, 0x00, 0x20, 0xF5, 0x00, 0x00, 0x20, - 0xF8, 0x00, 0x00, 0x20, 0xFA, 0x00, 0x00, 0x20, 0x38, 0x01, 0x00, 0x20, 0x01, 0x01, 0x00, 0x20, - 0x34, 0x01, 0x00, 0x20, 0x02, 0x01, 0x00, 0x20, 0x2E, 0x01, 0x00, 0x20, 0x10, 0xB5, 0xFF, 0x48, - 0x00, 0x78, 0x00, 0x28, 0x07, 0xD1, 0xFE, 0x48, 0x00, 0x68, 0xFE, 0x49, 0x09, 0x88, 0x40, 0x1A, - 0xFB, 0x49, 0x08, 0x60, 0x0E, 0xE0, 0xFC, 0x48, 0x00, 0x78, 0x01, 0x28, 0x07, 0xD1, 0xF8, 0x48, - 0x00, 0x68, 0xF8, 0x49, 0x09, 0x88, 0x40, 0x1A, 0xF5, 0x49, 0x08, 0x60, 0x02, 0xE0, 0xF7, 0x48, - 0xF3, 0x49, 0x08, 0x60, 0xF2, 0x48, 0x00, 0x68, 0x00, 0x28, 0x0B, 0xDA, 0xEF, 0x48, 0x00, 0x78, - 0x01, 0x28, 0x01, 0xD1, 0xF2, 0x49, 0x08, 0x70, 0x01, 0x20, 0xEC, 0x49, 0x08, 0x70, 0xEF, 0x48, - 0xEB, 0x49, 0x08, 0x60, 0xEF, 0x48, 0x00, 0x78, 0x00, 0x28, 0x5B, 0xD1, 0xEE, 0x48, 0x00, 0x78, - 0x81, 0x00, 0x40, 0x18, 0x40, 0x1D, 0xED, 0x49, 0x09, 0x78, 0x88, 0x42, 0x1D, 0xDA, 0xEC, 0x48, - 0x00, 0x78, 0x00, 0x28, 0x03, 0xD0, 0xEA, 0x48, 0x00, 0x78, 0x01, 0x28, 0x0B, 0xD1, 0x01, 0x20, - 0xE7, 0x49, 0x08, 0x70, 0xE7, 0x48, 0x00, 0x88, 0xDE, 0x49, 0x09, 0x88, 0x40, 0x18, 0x00, 0xB2, - 0xE4, 0x49, 0x08, 0x80, 0x3E, 0xE0, 0xE2, 0x48, 0x00, 0x78, 0x02, 0x28, 0x3A, 0xD1, 0x00, 0x20, - 0xDF, 0x49, 0x08, 0x70, 0xDF, 0x49, 0x08, 0x80, 0x34, 0xE0, 0xDC, 0x48, 0x00, 0x78, 0x81, 0x00, - 0x40, 0x18, 0x40, 0x1D, 0xD8, 0x49, 0x09, 0x78, 0x88, 0x42, 0x1D, 0xDA, 0xD8, 0x48, 0x00, 0x78, - 0x00, 0x28, 0x03, 0xD0, 0xD6, 0x48, 0x00, 0x78, 0x02, 0x28, 0x0B, 0xD1, 0x02, 0x20, 0xD4, 0x49, - 0x08, 0x70, 0xD4, 0x48, 0x00, 0x88, 0xCB, 0x49, 0x09, 0x88, 0x40, 0x18, 0x00, 0xB2, 0xD1, 0x49, - 0x08, 0x80, 0x17, 0xE0, 0xCE, 0x48, 0x00, 0x78, 0x01, 0x28, 0x13, 0xD1, 0x00, 0x20, 0xCC, 0x49, - 0x08, 0x70, 0xCC, 0x49, 0x08, 0x80, 0x0D, 0xE0, 0xCA, 0x48, 0x00, 0x21, 0x41, 0x5E, 0x00, 0x29, - 0x08, 0xDD, 0xC0, 0x48, 0x00, 0x88, 0x40, 0x00, 0xC6, 0x49, 0x09, 0x88, 0x08, 0x1A, 0x00, 0xB2, - 0xC4, 0x49, 0x08, 0x80, 0xC3, 0x49, 0x00, 0x20, 0x08, 0x5E, 0x7D, 0x21, 0xC9, 0x00, 0x88, 0x42, - 0x05, 0xDD, 0x01, 0x20, 0xBB, 0x49, 0x08, 0x70, 0x00, 0x20, 0xBE, 0x49, 0x08, 0x80, 0xB9, 0x48, - 0x00, 0x78, 0x01, 0x28, 0x18, 0xD1, 0xBB, 0x48, 0x00, 0x88, 0xB2, 0x49, 0x09, 0x88, 0x40, 0x18, - 0x00, 0xB2, 0xB8, 0x49, 0x08, 0x80, 0xB8, 0x48, 0x00, 0x78, 0x00, 0x28, 0x01, 0xD0, 0x00, 0x20, - 0x08, 0x80, 0xB4, 0x49, 0x00, 0x20, 0x08, 0x5E, 0x19, 0x21, 0x49, 0x01, 0x88, 0x42, 0x03, 0xDD, - 0x02, 0x20, 0xB2, 0x49, 0x08, 0x70, 0x10, 0xBD, 0xB1, 0x48, 0x00, 0x78, 0x01, 0x28, 0x1C, 0xD1, - 0xB0, 0x48, 0x00, 0x88, 0xB0, 0x49, 0x09, 0x88, 0x88, 0x42, 0x7E, 0xD1, 0xAF, 0x49, 0x00, 0x20, - 0x08, 0x5E, 0xAF, 0x49, 0x09, 0x78, 0x88, 0x42, 0x07, 0xDC, 0xAD, 0x48, 0x00, 0x78, 0x40, 0x42, - 0xAC, 0x49, 0x00, 0x22, 0x8A, 0x5E, 0x90, 0x42, 0x6F, 0xDD, 0xFC, 0xF7, 0x55, 0xFE, 0x00, 0x28, - 0x6B, 0xD0, 0x01, 0x20, 0xA1, 0x49, 0x08, 0x70, 0xDD, 0xE7, 0xA7, 0x48, 0x00, 0x78, 0x01, 0x28, - 0xE3, 0xD1, 0x95, 0x48, 0x00, 0x78, 0x01, 0x28, 0x13, 0xD1, 0xA4, 0x48, 0x00, 0x78, 0x00, 0x28, - 0x0F, 0xD1, 0x9E, 0x49, 0x08, 0x5E, 0x9F, 0x49, 0x00, 0x22, 0x8A, 0x5E, 0x80, 0x1A, 0xA0, 0x49, - 0x09, 0x78, 0x88, 0x42, 0x05, 0xDD, 0x01, 0x20, 0x9C, 0x49, 0x08, 0x70, 0x9D, 0x48, 0x9E, 0x49, - 0x08, 0x80, 0x96, 0x4B, 0x00, 0x22, 0x9A, 0x5E, 0x96, 0x4B, 0x00, 0x24, 0x1C, 0x5F, 0x12, 0x1B, - 0x93, 0x4B, 0x1B, 0x78, 0x5B, 0x00, 0x9A, 0x42, 0x7E, 0xDA, 0x98, 0x4A, 0x11, 0x78, 0xCA, 0x17, - 0x92, 0x0F, 0x52, 0x18, 0x92, 0x10, 0x8D, 0x4B, 0x00, 0x24, 0x1C, 0x5F, 0xA2, 0x42, 0x0B, 0xDA, - 0x92, 0x4A, 0x10, 0x78, 0xC2, 0x17, 0x92, 0x0F, 0x12, 0x18, 0x92, 0x10, 0x52, 0x42, 0x89, 0x4B, - 0x00, 0x24, 0x1C, 0x5F, 0xA2, 0x42, 0x07, 0xDC, 0x8D, 0x4A, 0x12, 0x68, 0x64, 0x2A, 0x03, 0xDB, - 0x75, 0x4A, 0x12, 0x78, 0x01, 0x2A, 0x66, 0xD1, 0x87, 0x48, 0x00, 0x88, 0x71, 0x49, 0x09, 0x88, - 0x40, 0x1A, 0x00, 0xB2, 0x84, 0x49, 0x08, 0x80, 0x80, 0x48, 0x00, 0x78, 0x01, 0x28, 0x07, 0xD1, - 0x6C, 0x48, 0x00, 0x88, 0xC0, 0x00, 0x09, 0x88, 0x08, 0x1A, 0x00, 0xB2, 0x7E, 0x49, 0x08, 0x80, - 0x7D, 0x48, 0x00, 0x21, 0x41, 0x5E, 0x00, 0x29, 0x02, 0xDC, 0x01, 0x20, 0x7D, 0x49, 0x08, 0x70, - 0x7C, 0x48, 0x00, 0x78, 0x01, 0x28, 0x57, 0xD1, 0x00, 0xE0, 0x55, 0xE0, 0x6F, 0x49, 0x00, 0x20, - 0x08, 0x5E, 0x70, 0x49, 0x00, 0x22, 0x8A, 0x5E, 0x80, 0x1A, 0x77, 0x49, 0x00, 0x22, 0x8A, 0x5E, - 0x80, 0x1A, 0x6B, 0x49, 0x09, 0x78, 0x49, 0x10, 0x88, 0x42, 0x0C, 0xDD, 0x73, 0x48, 0x6E, 0x49, - 0x08, 0x80, 0x67, 0x48, 0x00, 0x78, 0x40, 0x10, 0x6F, 0x49, 0x09, 0x88, 0x40, 0x18, 0x00, 0xB2, - 0x6D, 0x49, 0x08, 0x80, 0x1C, 0xE0, 0x61, 0x49, 0x00, 0x20, 0x08, 0x5E, 0x61, 0x49, 0x00, 0x22, - 0x8A, 0x5E, 0x80, 0x1A, 0x68, 0x49, 0x00, 0x22, 0x8A, 0x5E, 0x80, 0x1A, 0x5C, 0x49, 0x09, 0x78, - 0x49, 0x10, 0x49, 0x42, 0x88, 0x42, 0x0B, 0xDA, 0x64, 0x48, 0x5F, 0x49, 0x08, 0x80, 0x58, 0x48, - 0x00, 0x78, 0x40, 0x10, 0x60, 0x49, 0x09, 0x88, 0x08, 0x1A, 0x00, 0xB2, 0x5E, 0x49, 0x08, 0x80, - 0x59, 0x48, 0x00, 0x21, 0x41, 0x5E, 0x00, 0xE0, 0x05, 0xE0, 0x00, 0x29, 0x14, 0xDC, 0x03, 0x20, - 0x4A, 0x49, 0x08, 0x70, 0x2F, 0xE7, 0x55, 0x49, 0x08, 0x78, 0x4C, 0x4A, 0x00, 0x21, 0x51, 0x5E, - 0x4C, 0x4A, 0x00, 0x23, 0xD3, 0x5E, 0xC9, 0x1A, 0xC2, 0x0F, 0x12, 0x18, 0x52, 0x10, 0x91, 0x42, - 0x02, 0xDA, 0x4C, 0x48, 0x4C, 0x49, 0x08, 0x80, 0x47, 0x48, 0x00, 0x78, 0x00, 0x28, 0x03, 0xD0, - 0x3F, 0x48, 0x00, 0x78, 0x01, 0x28, 0x60, 0xD1, 0x47, 0x48, 0x00, 0x88, 0x31, 0x49, 0x09, 0x88, - 0x40, 0x1A, 0x00, 0xB2, 0x44, 0x49, 0x08, 0x80, 0x3C, 0x49, 0x00, 0x20, 0x08, 0x5E, 0x3C, 0x49, - 0x09, 0x78, 0x88, 0x42, 0x07, 0xDC, 0x3A, 0x48, 0x00, 0x78, 0x40, 0x42, 0x39, 0x49, 0x00, 0x22, - 0x8A, 0x5E, 0x90, 0x42, 0x08, 0xDD, 0x27, 0x48, 0x00, 0x88, 0x40, 0x00, 0x3A, 0x49, 0x09, 0x88, - 0x08, 0x1A, 0x00, 0xB2, 0x38, 0x49, 0x08, 0x80, 0x37, 0x48, 0x00, 0x21, 0x41, 0x5E, 0x00, 0x29, - 0x02, 0xDC, 0x01, 0x20, 0x37, 0x49, 0x08, 0x70, 0x36, 0x48, 0x00, 0x78, 0x01, 0x28, 0x71, 0xD1, - 0x25, 0x48, 0x00, 0x78, 0x00, 0x28, 0x03, 0xD1, 0x35, 0x48, 0x00, 0x78, 0x00, 0x28, 0x03, 0xD0, - 0x64, 0x20, 0x2D, 0x49, 0x08, 0x80, 0x7A, 0xE0, 0x24, 0x49, 0x00, 0x20, 0x08, 0x5E, 0x2E, 0x49, - 0x00, 0x22, 0x8A, 0x5E, 0x80, 0x1A, 0x22, 0x49, 0x09, 0x78, 0x88, 0x42, 0x08, 0xDD, 0x25, 0x48, - 0x25, 0x49, 0x08, 0x80, 0x1D, 0x49, 0x00, 0x20, 0x08, 0x5E, 0x27, 0x49, 0x08, 0x80, 0x66, 0xE0, - 0x1A, 0x49, 0x00, 0x20, 0x08, 0x5E, 0x24, 0x49, 0x00, 0x22, 0x8A, 0x5E, 0x80, 0x1A, 0x18, 0x49, - 0x09, 0x78, 0x49, 0x10, 0x88, 0x42, 0x46, 0xDD, 0x20, 0x48, 0x1B, 0x49, 0x08, 0x80, 0x13, 0x49, - 0x00, 0x20, 0x08, 0x5E, 0x1C, 0x49, 0x08, 0x80, 0x51, 0xE0, 0xD0, 0xE0, 0xDA, 0x00, 0x00, 0x20, - 0xDC, 0x00, 0x00, 0x20, 0x4A, 0x00, 0x00, 0x20, 0xF7, 0x00, 0x00, 0x20, 0x60, 0xEA, 0x00, 0x00, - 0xDB, 0x00, 0x00, 0x20, 0xF5, 0x00, 0x00, 0x20, 0xF1, 0x00, 0x00, 0x20, 0xF0, 0x00, 0x00, 0x20, - 0xF4, 0x00, 0x00, 0x20, 0xF2, 0x00, 0x00, 0x20, 0x25, 0x01, 0x00, 0x20, 0xEE, 0x00, 0x00, 0x20, - 0x00, 0x01, 0x00, 0x20, 0x46, 0x00, 0x00, 0x20, 0x48, 0x00, 0x00, 0x20, 0x74, 0x01, 0x00, 0x20, - 0x38, 0x01, 0x00, 0x20, 0x72, 0x01, 0x00, 0x20, 0xF6, 0x00, 0x00, 0x20, 0xEF, 0x00, 0x00, 0x20, - 0x37, 0x01, 0x00, 0x20, 0x98, 0x3A, 0x00, 0x00, 0xE6, 0x00, 0x00, 0x20, 0x01, 0x01, 0x00, 0x20, - 0xFC, 0x00, 0x00, 0x20, 0xEB, 0x00, 0x00, 0x20, 0xE8, 0x00, 0x00, 0x20, 0xB8, 0x0B, 0x00, 0x00, - 0x24, 0x01, 0x00, 0x20, 0x1C, 0xE0, 0x5C, 0x49, 0x00, 0x20, 0x08, 0x5E, 0x5B, 0x49, 0x00, 0x22, - 0x8A, 0x5E, 0x80, 0x1A, 0x5A, 0x49, 0x09, 0x78, 0x49, 0x42, 0x88, 0x42, 0x07, 0xDA, 0x64, 0x20, - 0x58, 0x49, 0x08, 0x80, 0x54, 0x49, 0x00, 0x20, 0x08, 0x5E, 0x54, 0x49, 0x08, 0x80, 0x55, 0x48, - 0x00, 0x21, 0x41, 0x5E, 0x00, 0x29, 0x03, 0xDC, 0x03, 0x20, 0x53, 0x49, 0x08, 0x70, 0x5A, 0xE6, - 0x52, 0x48, 0x00, 0x78, 0x01, 0x28, 0x11, 0xD1, 0x51, 0x48, 0x00, 0x88, 0x51, 0x49, 0x09, 0x88, - 0x40, 0x18, 0x00, 0xB2, 0x4E, 0x49, 0x08, 0x80, 0x00, 0x20, 0x08, 0x5E, 0x4E, 0x49, 0x88, 0x42, - 0x04, 0xDB, 0x00, 0x20, 0x49, 0x49, 0x08, 0x70, 0x4C, 0x49, 0x08, 0x70, 0x4C, 0x48, 0x00, 0x68, - 0x81, 0x00, 0x40, 0x18, 0x42, 0x49, 0x09, 0x78, 0x40, 0x18, 0x4A, 0x49, 0x09, 0x68, 0x88, 0x42, - 0x11, 0xDA, 0x49, 0x48, 0x00, 0x88, 0x43, 0x49, 0x09, 0x88, 0x40, 0x18, 0x00, 0xB2, 0x46, 0x49, - 0x08, 0x80, 0x00, 0x20, 0x08, 0x5E, 0xFF, 0x21, 0xF5, 0x31, 0x88, 0x42, 0x06, 0xDB, 0x04, 0x20, - 0x39, 0x49, 0x08, 0x70, 0x27, 0xE6, 0x00, 0x20, 0x3F, 0x49, 0x08, 0x80, 0x3F, 0x48, 0x00, 0x78, - 0x00, 0x28, 0x03, 0xD1, 0x3E, 0x48, 0x00, 0x78, 0x00, 0x28, 0x4A, 0xD0, 0x3D, 0x48, 0x00, 0x88, - 0x3D, 0x49, 0x09, 0x88, 0x88, 0x42, 0x33, 0xD1, 0x3C, 0x48, 0x00, 0x21, 0x41, 0x56, 0x0A, 0x29, - 0x04, 0xDA, 0x00, 0x78, 0x40, 0x1C, 0x40, 0xB2, 0x38, 0x49, 0x08, 0x70, 0x38, 0x48, 0x00, 0x88, - 0x2C, 0x49, 0x09, 0x88, 0x40, 0x18, 0x00, 0xB2, 0x35, 0x49, 0x08, 0x80, 0x27, 0x48, 0x00, 0x78, - 0x01, 0x28, 0x07, 0xD1, 0x27, 0x48, 0x00, 0x88, 0x80, 0x00, 0x09, 0x88, 0x40, 0x18, 0x00, 0xB2, - 0x2F, 0x49, 0x08, 0x80, 0x2E, 0x49, 0x00, 0x20, 0x08, 0x5E, 0x2E, 0x49, 0x88, 0x42, 0x32, 0xDB, - 0x1E, 0x48, 0x00, 0x78, 0x01, 0x28, 0x04, 0xD1, 0x20, 0x48, 0x00, 0x78, 0x40, 0x1C, 0x1F, 0x49, - 0x08, 0x70, 0x00, 0x20, 0x26, 0x49, 0x08, 0x80, 0x05, 0x20, 0x17, 0x49, 0x08, 0x70, 0x22, 0xE0, - 0x22, 0x48, 0x00, 0x21, 0x41, 0x56, 0x00, 0x29, 0x04, 0xDD, 0x00, 0x78, 0x40, 0x1E, 0x40, 0xB2, - 0x1E, 0x49, 0x08, 0x70, 0x1D, 0x48, 0x00, 0x78, 0x00, 0x28, 0x14, 0xD1, 0x1C, 0x49, 0x08, 0x80, - 0x11, 0xE0, 0x1B, 0x48, 0x00, 0x21, 0x41, 0x5E, 0x00, 0x29, 0x09, 0xDD, 0x0D, 0x48, 0x00, 0x88, - 0x80, 0x00, 0x17, 0x49, 0x09, 0x88, 0x08, 0x1A, 0x00, 0xB2, 0x15, 0x49, 0x08, 0x80, 0x02, 0xE0, - 0x00, 0x20, 0x13, 0x49, 0x08, 0x80, 0xBE, 0xE5, 0x74, 0x01, 0x00, 0x20, 0xE8, 0x00, 0x00, 0x20, - 0x38, 0x01, 0x00, 0x20, 0xE6, 0x00, 0x00, 0x20, 0xEE, 0x00, 0x00, 0x20, 0xEC, 0x00, 0x00, 0x20, - 0xE4, 0x00, 0x00, 0x20, 0x4A, 0x00, 0x00, 0x20, 0x30, 0x75, 0x00, 0x00, 0xED, 0x00, 0x00, 0x20, - 0xD0, 0x00, 0x00, 0x20, 0xD4, 0x00, 0x00, 0x20, 0xE0, 0x00, 0x00, 0x20, 0x25, 0x01, 0x00, 0x20, - 0x24, 0x01, 0x00, 0x20, 0x46, 0x00, 0x00, 0x20, 0x48, 0x00, 0x00, 0x20, 0xEA, 0x00, 0x00, 0x20, - 0xE2, 0x00, 0x00, 0x20, 0x98, 0x3A, 0x00, 0x00, 0xF0, 0xB5, 0x1B, 0x4A, 0x41, 0x00, 0x52, 0x5E, - 0x19, 0x4E, 0x13, 0x46, 0x09, 0x33, 0x10, 0x36, 0x13, 0x2B, 0x03, 0xD2, 0x00, 0x23, 0x17, 0x4C, - 0x73, 0x52, 0x23, 0x54, 0x01, 0x23, 0x15, 0x4D, 0x83, 0x40, 0x24, 0x3D, 0x2C, 0x7A, 0x1F, 0x46, - 0x27, 0x42, 0x19, 0xD1, 0x70, 0x5E, 0x19, 0x23, 0xDB, 0x01, 0x98, 0x42, 0x01, 0xDD, 0x00, 0x2A, - 0x05, 0xDC, 0xFF, 0x23, 0x01, 0x33, 0x98, 0x42, 0x0D, 0xDD, 0x00, 0x2A, 0x0B, 0xDA, 0x0A, 0x4A, - 0x10, 0x3A, 0x13, 0x46, 0x10, 0x3B, 0x50, 0x5A, 0x5B, 0x5A, 0xC0, 0x18, 0x00, 0x04, 0x40, 0x0C, - 0x50, 0x52, 0x10, 0x20, 0xE8, 0x71, 0xF0, 0xBD, 0x00, 0x22, 0x72, 0x52, 0x03, 0x49, 0x9C, 0x43, - 0x0A, 0x54, 0x2C, 0x72, 0xF0, 0xBD, 0x00, 0x00, 0x58, 0x1A, 0x00, 0x20, 0xA4, 0x03, 0x00, 0x20, - 0x00, 0xB5, 0x85, 0xB0, 0x28, 0x48, 0x00, 0x78, 0x02, 0x28, 0x4A, 0xDA, 0x27, 0x48, 0x00, 0x78, - 0x00, 0x28, 0x46, 0xDD, 0xFF, 0xF7, 0xDC, 0xFB, 0x00, 0x28, 0x3F, 0xD0, 0x23, 0x48, 0x00, 0x78, - 0x04, 0x28, 0x19, 0xD1, 0x22, 0x48, 0x00, 0x78, 0x03, 0x28, 0x10, 0xDA, 0x01, 0x20, 0x21, 0x49, - 0x08, 0x70, 0x1F, 0x48, 0x00, 0x78, 0x00, 0x28, 0x01, 0xD0, 0x01, 0x20, 0x00, 0xE0, 0x00, 0x20, - 0x1D, 0x49, 0x09, 0x88, 0x48, 0x43, 0x00, 0xB2, 0x1B, 0x49, 0x08, 0x80, 0x04, 0xE0, 0x00, 0x20, - 0x18, 0x49, 0x08, 0x70, 0x16, 0x49, 0x08, 0x70, 0x18, 0x49, 0x00, 0x20, 0x08, 0x5E, 0x18, 0x49, - 0x08, 0x80, 0x64, 0x20, 0x17, 0x49, 0x08, 0x70, 0x03, 0x22, 0x00, 0x21, 0x02, 0x91, 0x04, 0x92, - 0x03, 0x91, 0x0A, 0x46, 0x13, 0x49, 0x01, 0x92, 0x00, 0x91, 0x01, 0x22, 0xFF, 0x21, 0x9F, 0x31, - 0xA0, 0x20, 0x10, 0x4B, 0xFA, 0xF7, 0xB4, 0xFC, 0x01, 0x20, 0xF7, 0xF7, 0x9F, 0xFF, 0x00, 0xF0, - 0xA3, 0xF8, 0x0A, 0x20, 0xF7, 0xF7, 0x9A, 0xFF, 0xF7, 0xF7, 0x80, 0xF9, 0x00, 0x20, 0x03, 0x49, - 0x08, 0x70, 0x05, 0xB0, 0x00, 0xBD, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x20, 0xEE, 0x00, 0x00, 0x20, - 0xED, 0x00, 0x00, 0x20, 0xEC, 0x00, 0x00, 0x20, 0xE4, 0x00, 0x00, 0x20, 0x9A, 0x01, 0x00, 0x20, - 0x9C, 0x01, 0x00, 0x20, 0x44, 0x05, 0x00, 0x20, 0x10, 0xB5, 0x01, 0x20, 0xFC, 0xF7, 0xB0, 0xFD, - 0x0C, 0x49, 0x59, 0x20, 0x08, 0x60, 0x16, 0x20, 0x08, 0x60, 0x88, 0x20, 0x08, 0x60, 0x0A, 0x48, - 0x02, 0x68, 0x01, 0x23, 0x1A, 0x43, 0x02, 0x60, 0x02, 0x68, 0x80, 0x23, 0x9A, 0x43, 0x02, 0x60, - 0x02, 0x68, 0x40, 0x23, 0x9A, 0x43, 0x02, 0x60, 0x00, 0x20, 0x08, 0x60, 0x01, 0x20, 0xFC, 0xF7, - 0xB5, 0xFD, 0x10, 0xBD, 0x00, 0x01, 0x00, 0x50, 0x00, 0x40, 0x00, 0x40, 0x30, 0xB5, 0x0C, 0x4D, - 0x00, 0x20, 0x28, 0x74, 0x0B, 0x49, 0x59, 0x22, 0x0A, 0x60, 0x16, 0x22, 0x0A, 0x60, 0x88, 0x22, - 0x0A, 0x60, 0x09, 0x4A, 0x13, 0x68, 0x08, 0x24, 0x23, 0x43, 0x13, 0x60, 0x6B, 0x7C, 0x00, 0x2B, - 0x04, 0xD0, 0x68, 0x74, 0x13, 0x68, 0x01, 0x24, 0x23, 0x43, 0x13, 0x60, 0x08, 0x60, 0x30, 0xBD, - 0x1C, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x50, 0x00, 0x40, 0x00, 0x40, 0x70, 0xB5, 0x04, 0x46, - 0x01, 0x20, 0xFC, 0xF7, 0x6D, 0xFD, 0x01, 0x21, 0x08, 0x46, 0xFC, 0xF7, 0x9B, 0xFD, 0x1A, 0x49, - 0x59, 0x20, 0x08, 0x60, 0x16, 0x20, 0x08, 0x60, 0x88, 0x20, 0x08, 0x60, 0x17, 0x48, 0x83, 0x68, - 0x01, 0x22, 0x13, 0x43, 0x83, 0x60, 0x43, 0x69, 0x03, 0x25, 0x2B, 0x43, 0x43, 0x61, 0x14, 0x48, - 0x03, 0x68, 0x07, 0x25, 0x2D, 0x02, 0x64, 0x07, 0xAB, 0x43, 0x64, 0x0D, 0x23, 0x43, 0x03, 0x60, - 0x03, 0x68, 0x02, 0x24, 0x23, 0x43, 0x03, 0x60, 0x03, 0x68, 0x04, 0x24, 0x23, 0x43, 0x03, 0x60, - 0x03, 0x68, 0x13, 0x43, 0x03, 0x60, 0x03, 0x68, 0x40, 0x24, 0x23, 0x43, 0x03, 0x60, 0x03, 0x68, - 0x80, 0x24, 0x23, 0x43, 0x03, 0x60, 0x07, 0x48, 0x42, 0x74, 0x00, 0x20, 0x08, 0x60, 0x01, 0x20, - 0xFC, 0xF7, 0x54, 0xFD, 0x70, 0xBD, 0x00, 0x00, 0x00, 0x01, 0x00, 0x50, 0x00, 0x02, 0x00, 0x50, - 0x00, 0x40, 0x00, 0x40, 0x1C, 0x00, 0x00, 0x20, 0x00, 0xB5, 0x87, 0xB0, 0x0A, 0xA0, 0x00, 0x68, - 0x06, 0x90, 0x00, 0x20, 0x05, 0x90, 0x05, 0xA9, 0x03, 0x22, 0x00, 0x91, 0x02, 0x90, 0x03, 0x90, - 0x04, 0x92, 0x01, 0x90, 0x0B, 0x21, 0x01, 0x22, 0x49, 0x02, 0xA0, 0x20, 0x06, 0xAB, 0xFA, 0xF7, - 0xF7, 0xFB, 0x07, 0xB0, 0x00, 0xBD, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x70, 0xB5, 0x04, 0x46, - 0x0B, 0x46, 0x00, 0x25, 0x02, 0xE0, 0x5E, 0x5D, 0x66, 0x55, 0x6D, 0x1C, 0x95, 0x42, 0xFA, 0xDB, - 0x70, 0xBD, 0x77, 0xB5, 0x7D, 0x25, 0x81, 0xB0, 0x06, 0x46, 0x00, 0x24, 0xED, 0x00, 0xF7, 0xF7, - 0xBB, 0xFE, 0x03, 0xAA, 0x00, 0x92, 0x01, 0x22, 0x31, 0x46, 0xA0, 0x20, 0x02, 0xAB, 0xFA, 0xF7, - 0xAB, 0xFE, 0x01, 0x28, 0x03, 0xD0, 0x20, 0x46, 0x64, 0x1C, 0xA8, 0x42, 0xEF, 0xD9, 0x7F, 0xBD, - 0x30, 0xB4, 0x74, 0x46, 0x64, 0x1E, 0x25, 0x78, 0x64, 0x1C, 0xAB, 0x42, 0x00, 0xD2, 0x1D, 0x46, - 0x63, 0x5D, 0x5B, 0x00, 0xE3, 0x18, 0x30, 0xBC, 0x18, 0x47, 0x70, 0xB5, 0x00, 0x24, 0x09, 0xE0, - 0x0E, 0x5D, 0x05, 0x5D, 0xAE, 0x42, 0x02, 0xD1, 0x16, 0x5D, 0xAE, 0x42, 0x01, 0xD0, 0x00, 0x20, - 0x70, 0xBD, 0x64, 0x1C, 0x9C, 0x42, 0xF3, 0xDB, 0x01, 0x20, 0x70, 0xBD, 0xF0, 0xB5, 0x00, 0x25, - 0x89, 0xB0, 0x01, 0x26, 0xFF, 0x4F, 0x3C, 0x46, 0x20, 0x34, 0x00, 0x20, 0xA0, 0x70, 0x0A, 0x20, - 0xE0, 0x70, 0x03, 0x21, 0x01, 0x22, 0x08, 0x46, 0xF8, 0xF7, 0x80, 0xF9, 0x03, 0x21, 0x08, 0x46, - 0xF7, 0xF7, 0x3A, 0xFF, 0x7E, 0x75, 0x07, 0xAA, 0x00, 0x92, 0x01, 0x22, 0xF6, 0x49, 0xA0, 0x20, - 0x06, 0xAB, 0xFA, 0xF7, 0xA1, 0xFC, 0x01, 0x28, 0x08, 0xD1, 0x6B, 0x46, 0x18, 0x7E, 0x00, 0x28, - 0x04, 0xD0, 0xFF, 0x28, 0x02, 0xD0, 0x00, 0x20, 0x78, 0x75, 0x5F, 0xE0, 0x78, 0x7D, 0x00, 0x28, - 0x5C, 0xD0, 0x03, 0x21, 0x08, 0x46, 0xF8, 0xF7, 0x9B, 0xF9, 0x03, 0x20, 0xE0, 0x70, 0x02, 0x20, - 0xF7, 0xF7, 0x6C, 0xFE, 0x00, 0x21, 0x03, 0x22, 0x04, 0x92, 0x0A, 0x46, 0x08, 0x96, 0x02, 0x91, - 0x03, 0x91, 0x08, 0xA9, 0x01, 0x92, 0x00, 0x91, 0x01, 0x22, 0xE4, 0x49, 0xA0, 0x20, 0x08, 0xAB, - 0xFA, 0xF7, 0x6E, 0xFB, 0x00, 0x21, 0x03, 0x22, 0x04, 0x92, 0x0A, 0x46, 0x08, 0x96, 0x02, 0x91, - 0x03, 0x91, 0x08, 0xA9, 0x01, 0x92, 0x00, 0x91, 0x01, 0x22, 0xDD, 0x49, 0xA0, 0x20, 0x08, 0xAB, - 0xFA, 0xF7, 0x5E, 0xFB, 0x00, 0x21, 0x03, 0x22, 0x04, 0x92, 0x03, 0x91, 0x0A, 0x46, 0x02, 0x91, - 0x23, 0x20, 0x08, 0xA9, 0x08, 0x90, 0x01, 0x92, 0x00, 0x91, 0x01, 0x22, 0xD4, 0x49, 0xA0, 0x20, - 0x08, 0xAB, 0xFA, 0xF7, 0x4D, 0xFB, 0x00, 0x21, 0x03, 0x22, 0x04, 0x92, 0x03, 0x91, 0x0A, 0x46, - 0x02, 0x91, 0x45, 0x20, 0x08, 0xA9, 0x08, 0x90, 0x01, 0x92, 0x00, 0x91, 0x01, 0x22, 0xCC, 0x49, - 0xA0, 0x20, 0x08, 0xAB, 0xFA, 0xF7, 0x3C, 0xFB, 0x00, 0x21, 0x03, 0x22, 0x04, 0x92, 0x03, 0x91, - 0x0A, 0x46, 0x02, 0x91, 0x67, 0x20, 0x08, 0xA9, 0x08, 0x90, 0x01, 0x92, 0x00, 0x91, 0x01, 0x22, - 0xC3, 0x49, 0xA0, 0x20, 0x08, 0xAB, 0xFA, 0xF7, 0x2B, 0xFB, 0x0A, 0xE0, 0xBE, 0x48, 0x00, 0x22, - 0x01, 0x21, 0x40, 0x1E, 0xFF, 0xF7, 0x3D, 0xFF, 0x02, 0x20, 0xF7, 0xF7, 0x0F, 0xFE, 0xFD, 0xF7, - 0xF9, 0xFF, 0xF7, 0xF7, 0xBF, 0xFD, 0x01, 0x21, 0x02, 0x20, 0xF7, 0xF7, 0xB5, 0xFE, 0x01, 0x20, - 0xF7, 0xF7, 0x04, 0xFE, 0x01, 0x21, 0x02, 0x20, 0xF8, 0xF7, 0x2A, 0xF9, 0x01, 0x20, 0xF7, 0xF7, - 0xFD, 0xFD, 0x78, 0x7D, 0x00, 0x28, 0x2D, 0xD0, 0x80, 0x20, 0x08, 0x90, 0xFF, 0x20, 0xB8, 0x70, - 0x00, 0x21, 0x03, 0x22, 0x04, 0x92, 0x0A, 0x46, 0x02, 0x91, 0x03, 0x91, 0x08, 0xA9, 0x00, 0x91, - 0x01, 0x92, 0x13, 0x21, 0x01, 0x22, 0x09, 0x02, 0xA0, 0x20, 0x08, 0xAB, 0xFA, 0xF7, 0xF8, 0xFA, - 0x0A, 0x20, 0xF7, 0xF7, 0xE3, 0xFD, 0x78, 0x6B, 0x03, 0x22, 0xB9, 0x6B, 0x02, 0xAB, 0x07, 0xC3, - 0x01, 0x22, 0x00, 0x21, 0x01, 0x92, 0x00, 0x91, 0x0A, 0x46, 0x9F, 0x49, 0xA0, 0x20, 0x00, 0x23, - 0xFA, 0xF7, 0xE6, 0xFA, 0xBE, 0x75, 0x78, 0x6B, 0x00, 0x78, 0x40, 0x28, 0x23, 0xD1, 0x00, 0x20, - 0xB8, 0x75, 0x20, 0xE0, 0x98, 0x48, 0x00, 0x22, 0x01, 0x21, 0x40, 0x1E, 0xFF, 0xF7, 0xF1, 0xFE, - 0xF6, 0xF7, 0x56, 0xF9, 0x6B, 0x46, 0x06, 0x90, 0x18, 0x7E, 0x00, 0x28, 0x05, 0xD1, 0x40, 0x20, - 0x06, 0x90, 0xA0, 0x78, 0x02, 0x21, 0x08, 0x43, 0xA0, 0x70, 0x6B, 0x46, 0x1A, 0x7E, 0x8E, 0x48, - 0x11, 0x46, 0xFF, 0xF7, 0xDE, 0xFE, 0x03, 0x20, 0xE0, 0x70, 0xF7, 0xF7, 0x77, 0xFD, 0x0D, 0x20, - 0xFD, 0xF7, 0xEE, 0xFE, 0xBE, 0x75, 0xFF, 0xF7, 0x27, 0xFE, 0xA0, 0x78, 0x04, 0x21, 0x08, 0x43, - 0xA0, 0x70, 0x00, 0x20, 0x07, 0x90, 0xF9, 0xF7, 0x9F, 0xFC, 0x3E, 0x28, 0x04, 0xD1, 0xA0, 0x78, - 0xFB, 0x21, 0x08, 0x40, 0xA0, 0x70, 0x08, 0xE0, 0xF7, 0xF7, 0x72, 0xFD, 0x6B, 0x46, 0x18, 0x7F, - 0x40, 0x1C, 0xC0, 0xB2, 0x07, 0x90, 0x32, 0x28, 0xED, 0xD3, 0xFC, 0xF7, 0x51, 0xFC, 0x7D, 0x48, - 0x00, 0x78, 0xC9, 0x28, 0x38, 0x7B, 0x04, 0xD1, 0x00, 0x28, 0x08, 0xD0, 0x7A, 0x49, 0x7B, 0x48, - 0x03, 0xE0, 0x00, 0x28, 0x03, 0xD0, 0x7A, 0x49, 0x7A, 0x48, 0x00, 0xF0, 0x61, 0xF9, 0x38, 0x7B, - 0x00, 0x28, 0x39, 0xD1, 0x05, 0x20, 0xF7, 0xF7, 0x79, 0xFD, 0x0D, 0x20, 0xFD, 0xF7, 0xB8, 0xFE, - 0x0A, 0x20, 0xF7, 0xF7, 0x73, 0xFD, 0x65, 0x20, 0xFD, 0xF7, 0xB2, 0xFE, 0x0A, 0x20, 0xF7, 0xF7, - 0x6D, 0xFD, 0x20, 0x20, 0xFD, 0xF7, 0xAC, 0xFE, 0x0A, 0x20, 0xF7, 0xF7, 0x67, 0xFD, 0x34, 0x20, - 0xFD, 0xF7, 0xA6, 0xFE, 0x0A, 0x20, 0xF7, 0xF7, 0x61, 0xFD, 0x30, 0x20, 0xFD, 0xF7, 0xA0, 0xFE, - 0x0A, 0x20, 0xF7, 0xF7, 0x5B, 0xFD, 0x31, 0x20, 0xFD, 0xF7, 0x9A, 0xFE, 0x0A, 0x20, 0xF7, 0xF7, - 0x55, 0xFD, 0x30, 0x20, 0xFD, 0xF7, 0x94, 0xFE, 0x0A, 0x20, 0xF7, 0xF7, 0x4F, 0xFD, 0x62, 0x48, - 0x81, 0x68, 0x01, 0x22, 0x52, 0x02, 0x91, 0x43, 0x81, 0x60, 0x81, 0x68, 0x92, 0x00, 0x91, 0x43, - 0x81, 0x60, 0x0D, 0x20, 0xFD, 0xF7, 0x84, 0xFE, 0x02, 0x20, 0xFF, 0xF7, 0xFF, 0xFD, 0xA0, 0x78, - 0x08, 0x21, 0x08, 0x43, 0xA0, 0x70, 0x00, 0x20, 0x07, 0x90, 0xF9, 0xF7, 0x35, 0xFC, 0x21, 0x28, - 0x04, 0xD1, 0xA0, 0x78, 0xF7, 0x21, 0x08, 0x40, 0xA0, 0x70, 0x08, 0xE0, 0xF7, 0xF7, 0x08, 0xFD, - 0x6B, 0x46, 0x18, 0x7F, 0x40, 0x1C, 0xC0, 0xB2, 0x07, 0x90, 0x14, 0x28, 0xED, 0xD3, 0x4E, 0x48, - 0x81, 0x68, 0x01, 0x22, 0x52, 0x02, 0x11, 0x43, 0x81, 0x60, 0x81, 0x68, 0x92, 0x00, 0x11, 0x43, - 0x81, 0x60, 0x78, 0x6B, 0x03, 0x22, 0xB9, 0x6B, 0x02, 0xAB, 0x07, 0xC3, 0x01, 0x22, 0x00, 0x21, - 0x01, 0x92, 0x00, 0x91, 0x0A, 0x46, 0xFF, 0x21, 0x9E, 0x31, 0xA0, 0x20, 0x00, 0x23, 0xFA, 0xF7, - 0x1F, 0xFA, 0x78, 0x6B, 0x00, 0x78, 0x40, 0x06, 0x40, 0x0E, 0x55, 0x28, 0x05, 0xD1, 0xB8, 0x6B, - 0x00, 0x78, 0x40, 0x06, 0x40, 0x0E, 0x55, 0x28, 0x03, 0xD0, 0xA0, 0x78, 0x10, 0x21, 0x08, 0x43, - 0xA0, 0x70, 0xA0, 0x78, 0x00, 0x28, 0x0B, 0xD0, 0x6D, 0x1C, 0xED, 0xB2, 0x02, 0x2D, 0x01, 0xD2, - 0x3E, 0x73, 0x5A, 0xE6, 0x78, 0x7A, 0x00, 0x28, 0xFC, 0xD0, 0xFA, 0xF7, 0x75, 0xFE, 0xF9, 0xE7, - 0x78, 0x6B, 0x32, 0x49, 0x00, 0x78, 0x00, 0x06, 0x03, 0xD5, 0x31, 0x48, 0xC0, 0x7A, 0xC0, 0x09, - 0x04, 0xD0, 0x08, 0x78, 0x05, 0x28, 0x01, 0xD9, 0x05, 0x20, 0x08, 0x70, 0x00, 0x24, 0x2C, 0x4A, - 0x07, 0x94, 0x60, 0x3A, 0x6B, 0x46, 0x1B, 0x7F, 0xD0, 0x18, 0x60, 0x30, 0xC5, 0x7F, 0xFF, 0x2D, - 0x0D, 0xD0, 0xC5, 0x7F, 0x02, 0x2D, 0x02, 0xD0, 0xC0, 0x7F, 0x03, 0x28, 0x02, 0xD1, 0xFF, 0x20, - 0x07, 0x90, 0x0D, 0xE0, 0x5B, 0x1C, 0xD8, 0xB2, 0x07, 0x90, 0x10, 0x28, 0xEA, 0xD3, 0x6B, 0x46, - 0x18, 0x7F, 0xFF, 0x28, 0x04, 0xD0, 0x08, 0x78, 0x02, 0x28, 0x01, 0xD9, 0x02, 0x20, 0x08, 0x70, - 0x00, 0x21, 0x08, 0x46, 0xF9, 0xF7, 0xFE, 0xFA, 0xF6, 0xF7, 0xC6, 0xFA, 0x00, 0x21, 0x03, 0x22, - 0x03, 0x91, 0x04, 0x92, 0x08, 0x90, 0x02, 0x91, 0x0A, 0x46, 0xB9, 0x6B, 0x00, 0x91, 0x01, 0x92, - 0x08, 0xAB, 0x7D, 0x6B, 0x1A, 0x78, 0xFF, 0x21, 0x02, 0x31, 0xA0, 0x20, 0x2B, 0x46, 0xFA, 0xF7, - 0xB7, 0xF9, 0x7B, 0x6B, 0x78, 0x7D, 0x18, 0x70, 0xB8, 0x7D, 0x03, 0x22, 0x58, 0x70, 0x00, 0x21, - 0x02, 0x91, 0x17, 0xE0, 0x1C, 0x00, 0x00, 0x20, 0x22, 0x15, 0x00, 0x00, 0x03, 0x13, 0x00, 0x00, - 0x04, 0x14, 0x00, 0x00, 0x2B, 0x01, 0x00, 0x20, 0x83, 0x04, 0x00, 0x00, 0x6D, 0xB5, 0x00, 0x00, - 0x49, 0x0A, 0x00, 0x00, 0x24, 0xAB, 0x00, 0x00, 0x80, 0x40, 0x00, 0x50, 0x36, 0x01, 0x00, 0x20, - 0x14, 0x04, 0x00, 0x20, 0x03, 0x91, 0x01, 0x91, 0x04, 0x92, 0xFF, 0x21, 0x00, 0x93, 0x02, 0x22, - 0x9C, 0x31, 0xA0, 0x20, 0xFA, 0xF7, 0x8C, 0xF9, 0x78, 0x7D, 0x00, 0x28, 0x12, 0xD0, 0x7B, 0x6B, - 0xDD, 0x20, 0x18, 0x70, 0xB8, 0x7D, 0x00, 0x28, 0x00, 0xD0, 0x1C, 0x70, 0x00, 0x21, 0x03, 0x22, - 0x02, 0x91, 0x03, 0x91, 0x04, 0x92, 0x01, 0x91, 0x00, 0x93, 0x01, 0x22, 0x06, 0x49, 0xA0, 0x20, - 0xFA, 0xF7, 0x76, 0xF9, 0xF7, 0xF7, 0x16, 0xFC, 0xFF, 0xF7, 0x66, 0xFD, 0x01, 0x20, 0xF7, 0xF7, - 0x5D, 0xFC, 0x09, 0xB0, 0xF0, 0xBD, 0x00, 0x00, 0x21, 0x15, 0x00, 0x00, 0xF8, 0xB5, 0x00, 0x20, - 0x00, 0xF0, 0xEA, 0xF8, 0x17, 0x4E, 0x18, 0x4F, 0x01, 0x25, 0x75, 0x74, 0xF6, 0xF7, 0x04, 0xFE, - 0x02, 0x20, 0xFD, 0xF7, 0xD7, 0xF9, 0xFF, 0xF7, 0x4F, 0xFD, 0xF7, 0xF7, 0x35, 0xFC, 0x13, 0x48, - 0x00, 0x78, 0x00, 0x28, 0x1A, 0xD1, 0xFD, 0xF7, 0xB9, 0xFE, 0x04, 0x46, 0x01, 0x20, 0xFD, 0xF7, - 0xC9, 0xF9, 0xFC, 0xF7, 0x73, 0xFF, 0x38, 0x78, 0xCA, 0x28, 0x04, 0xD1, 0x00, 0x2C, 0x0D, 0xD1, - 0xFA, 0xF7, 0x0A, 0xFB, 0xE1, 0xE7, 0x00, 0x28, 0x08, 0xD1, 0xF7, 0xF7, 0xD9, 0xF9, 0xFA, 0xF7, - 0x0D, 0xF9, 0xFD, 0xF7, 0x15, 0xF9, 0xFC, 0xF7, 0x27, 0xFC, 0xD6, 0xE7, 0xFD, 0xF7, 0x10, 0xF9, - 0xD3, 0xE7, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x20, 0x2B, 0x01, 0x00, 0x20, 0x1C, 0x02, 0x00, 0x20, - 0xF8, 0xB5, 0x05, 0x46, 0x0F, 0x46, 0x65, 0x20, 0xFD, 0xF7, 0x5A, 0xFD, 0x28, 0x4E, 0x06, 0x21, - 0x38, 0x46, 0xF5, 0xF7, 0xAB, 0xFC, 0x04, 0x46, 0x01, 0x46, 0x2A, 0x46, 0x30, 0x46, 0x00, 0xF0, - 0x4B, 0xF8, 0x20, 0x20, 0xFD, 0xF7, 0x4C, 0xFD, 0x30, 0x19, 0x86, 0xB2, 0x2D, 0x19, 0x2A, 0x46, - 0x21, 0x46, 0x30, 0x46, 0x00, 0xF0, 0x40, 0xF8, 0x34, 0x20, 0xFD, 0xF7, 0x41, 0xFD, 0x30, 0x19, - 0x86, 0xB2, 0x2D, 0x19, 0x2A, 0x46, 0x21, 0x46, 0x30, 0x46, 0x00, 0xF0, 0x35, 0xF8, 0x30, 0x20, - 0xFD, 0xF7, 0x36, 0xFD, 0x30, 0x19, 0x86, 0xB2, 0x2D, 0x19, 0x2A, 0x46, 0x21, 0x46, 0x30, 0x46, - 0x00, 0xF0, 0x2A, 0xF8, 0x31, 0x20, 0xFD, 0xF7, 0x2B, 0xFD, 0x30, 0x19, 0x86, 0xB2, 0x2D, 0x19, - 0x2A, 0x46, 0x21, 0x46, 0x30, 0x46, 0x00, 0xF0, 0x1F, 0xF8, 0x30, 0x20, 0xFD, 0xF7, 0x20, 0xFD, - 0x30, 0x19, 0x83, 0xB2, 0xA1, 0x00, 0x60, 0x18, 0x38, 0x1A, 0x81, 0xB2, 0x2A, 0x19, 0x18, 0x46, - 0x00, 0xF0, 0x12, 0xF8, 0x07, 0x48, 0x81, 0x68, 0x01, 0x22, 0x52, 0x02, 0x91, 0x43, 0x81, 0x60, - 0x81, 0x68, 0x92, 0x00, 0x91, 0x43, 0x81, 0x60, 0x0D, 0x20, 0xFD, 0xF7, 0x09, 0xFD, 0xF8, 0xBD, - 0x10, 0x40, 0x00, 0x00, 0x80, 0x40, 0x00, 0x50, 0xF7, 0xB5, 0x88, 0xB0, 0x27, 0x48, 0x07, 0x90, - 0x00, 0x24, 0x27, 0x48, 0x27, 0x4D, 0x17, 0x46, 0x01, 0x26, 0x06, 0x90, 0xA8, 0x78, 0x00, 0x28, - 0x42, 0xD1, 0x07, 0xE0, 0x64, 0x1C, 0xE4, 0xB2, 0x03, 0x2C, 0x03, 0xD3, 0xA8, 0x78, 0x30, 0x43, - 0xA8, 0x70, 0x17, 0xE0, 0x00, 0x21, 0x03, 0x22, 0x02, 0x91, 0x03, 0x91, 0x04, 0x92, 0x01, 0x91, - 0x3B, 0x46, 0x00, 0x97, 0xA0, 0x20, 0x09, 0x9A, 0x08, 0x99, 0xFA, 0xF7, 0xB1, 0xF8, 0x01, 0x28, - 0xE8, 0xD1, 0x07, 0xE0, 0x64, 0x1C, 0xE4, 0xB2, 0x03, 0x2C, 0x03, 0xD3, 0xA8, 0x78, 0x30, 0x43, - 0xA8, 0x70, 0x11, 0xE0, 0x03, 0x22, 0x07, 0x99, 0x06, 0x98, 0x04, 0x92, 0x02, 0x91, 0x00, 0x21, - 0x09, 0x9A, 0x03, 0x90, 0x01, 0x92, 0x00, 0x91, 0x0A, 0x46, 0xA0, 0x20, 0x00, 0x23, 0x08, 0x99, - 0xFA, 0xF7, 0x96, 0xF8, 0x01, 0x28, 0xE5, 0xD1, 0x38, 0x46, 0x09, 0x9B, 0x06, 0x9A, 0x07, 0x99, - 0xFF, 0xF7, 0xCB, 0xFC, 0x00, 0x28, 0x07, 0xD1, 0x20, 0x46, 0x64, 0x1C, 0xE4, 0xB2, 0x03, 0x28, - 0xBC, 0xD3, 0xA8, 0x78, 0x30, 0x43, 0xA8, 0x70, 0x0B, 0xB0, 0xF0, 0xBD, 0x00, 0x07, 0x00, 0x20, - 0x4C, 0x10, 0x00, 0x20, 0x3C, 0x00, 0x00, 0x20, 0x10, 0xB5, 0x00, 0x28, 0x06, 0xD0, 0x01, 0x28, - 0x06, 0xD0, 0x02, 0x28, 0x04, 0xD0, 0x03, 0x28, 0x13, 0xD1, 0x0B, 0xE0, 0xFB, 0xF7, 0x82, 0xF9, - 0xFF, 0xF7, 0xDA, 0xFB, 0xFC, 0xF7, 0x14, 0xFE, 0xFD, 0xF7, 0x06, 0xF9, 0xFA, 0xF7, 0x82, 0xFC, - 0xFE, 0xF7, 0x86, 0xFE, 0x02, 0x20, 0xFF, 0xF7, 0x11, 0xFC, 0xFF, 0xF7, 0xAF, 0xFC, 0xFE, 0xF7, - 0xDF, 0xFC, 0x10, 0xBD, 0x4F, 0xCE, 0x00, 0x50, 0x20, 0x03, 0xA7, 0x00, 0x08, 0x8C, 0x00, 0x5C, - 0x26, 0xF8, 0x8E, 0x00, 0xFE, 0xBD, 0x46, 0xDB, 0x20, 0xFE, 0x3C, 0xCC, 0x4A, 0x1D, 0xCE, 0x00, - 0x00, 0xED, 0x10, 0xCC, 0x4A, 0x25, 0xED, 0x12, 0xCC, 0x4A, 0x37, 0xED, 0x14, 0xCC, 0x4A, 0x43, - 0xED, 0x16, 0xCC, 0x4A, 0x4A, 0xED, 0x18, 0xCC, 0x4A, 0x51, 0xED, 0x1C, 0xC6, 0x03, 0xCE, 0x10, - 0x00, 0xE7, 0x00, 0x5F, 0xE7, 0x01, 0xE7, 0x02, 0xE7, 0x03, 0xE7, 0x04, 0xCE, 0x11, 0x00, 0xE7, - 0x00, 0xE7, 0x01, 0xCC, 0x3A, 0x98, 0xED, 0x02, 0xCC, 0x00, 0xFF, 0xED, 0x04, 0x5F, 0xED, 0x06, - 0xCE, 0x12, 0x00, 0xE7, 0x00, 0xC6, 0x04, 0xED, 0x01, 0x5F, 0xCE, 0x13, 0x00, 0xE7, 0x01, 0xC6, - 0x09, 0xE7, 0x03, 0xC6, 0x80, 0xCE, 0x14, 0x00, 0xE7, 0x00, 0xC6, 0x50, 0xE7, 0x01, 0x5F, 0xED, - 0x02, 0xE7, 0x04, 0xC6, 0x54, 0xCE, 0x15, 0x00, 0xE7, 0x00, 0x5F, 0xE7, 0x15, 0x86, 0x02, 0xED, - 0x1C, 0x4C, 0xED, 0x1E, 0xE7, 0x20, 0xCE, 0x16, 0x00, 0xE7, 0x00, 0xE7, 0x01, 0xE7, 0x02, 0xE7, - 0x03, 0xE7, 0x04, 0xE7, 0x05, 0x5C, 0xE7, 0x06, 0x5F, 0xE7, 0x07, 0x07, 0x84, 0x7F, 0x06, 0x38, - 0x39, 0x3C, 0xFE, 0x00, 0x5A, 0xF6, 0x01, 0x9C, 0x26, 0x3C, 0xEC, 0x00, 0x04, 0x04, 0xED, 0x00, - 0xEC, 0x02, 0x04, 0x04, 0xED, 0x02, 0xEC, 0x04, 0x04, 0x04, 0xED, 0x04, 0xEC, 0x06, 0x04, 0x04, - 0xED, 0x06, 0xEC, 0x08, 0x04, 0x04, 0xED, 0x08, 0xEC, 0x0A, 0x04, 0x04, 0xED, 0x0A, 0xEC, 0x0C, - 0x04, 0x04, 0xED, 0x0C, 0xEC, 0x0E, 0x04, 0x04, 0xED, 0x0E, 0xEC, 0x10, 0x04, 0x04, 0xED, 0x10, - 0xEC, 0x12, 0x04, 0x04, 0xED, 0x12, 0x18, 0xFE, 0x00, 0x58, 0x18, 0xEC, 0x00, 0xA3, 0x00, 0x2C, - 0x03, 0x5F, 0x20, 0x0A, 0x81, 0x03, 0x2E, 0x04, 0x04, 0x04, 0x20, 0x02, 0xC6, 0xFF, 0xD7, 0x4B, - 0x18, 0xEC, 0x02, 0xA3, 0x02, 0x2C, 0x03, 0x5F, 0x20, 0x0A, 0x81, 0x03, 0x2E, 0x04, 0x04, 0x04, - 0x20, 0x02, 0xC6, 0xFF, 0xD7, 0x4A, 0x18, 0xEC, 0x04, 0xA3, 0x04, 0x2C, 0x03, 0x5F, 0x20, 0x0A, - 0x81, 0x03, 0x2E, 0x04, 0x04, 0x04, 0x20, 0x02, 0xC6, 0xFF, 0xD7, 0x49, 0x18, 0xEC, 0x06, 0xA3, - 0x06, 0x2C, 0x03, 0x5F, 0x20, 0x0A, 0x81, 0x03, 0x2E, 0x04, 0x04, 0x04, 0x20, 0x02, 0xC6, 0xFF, - 0xD7, 0x48, 0x18, 0xEC, 0x08, 0xA3, 0x08, 0x2C, 0x03, 0x5F, 0x20, 0x0A, 0x81, 0x03, 0x2E, 0x04, - 0x04, 0x04, 0x20, 0x02, 0xC6, 0xFF, 0xD7, 0x47, 0x18, 0xEC, 0x0A, 0xA3, 0x0A, 0x2C, 0x03, 0x5F, - 0x20, 0x0A, 0x81, 0x03, 0x2E, 0x04, 0x04, 0x04, 0x20, 0x02, 0xC6, 0xFF, 0xD7, 0x46, 0x18, 0xEC, - 0x0C, 0xA3, 0x0C, 0x2C, 0x03, 0x5F, 0x20, 0x0A, 0x81, 0x03, 0x2E, 0x04, 0x04, 0x04, 0x20, 0x02, - 0xC6, 0xFF, 0xD7, 0x45, 0x18, 0xEC, 0x0E, 0xA3, 0x0E, 0x2C, 0x03, 0x5F, 0x20, 0x0A, 0x81, 0x03, - 0x2E, 0x04, 0x04, 0x04, 0x20, 0x02, 0xC6, 0xFF, 0xD7, 0x44, 0x18, 0xEC, 0x10, 0xA3, 0x10, 0x2C, - 0x03, 0x5F, 0x20, 0x0A, 0x81, 0x03, 0x2E, 0x04, 0x04, 0x04, 0x20, 0x02, 0xC6, 0xFF, 0xD7, 0x43, - 0x18, 0xEC, 0x12, 0xA3, 0x12, 0x2C, 0x03, 0x5F, 0x20, 0x0A, 0x81, 0x03, 0x2E, 0x04, 0x04, 0x04, - 0x20, 0x02, 0xC6, 0xFF, 0xD7, 0x42, 0xD6, 0x4B, 0xFE, 0x00, 0x50, 0xE7, 0x00, 0x08, 0xFF, 0x00, - 0x50, 0xFE, 0x00, 0x56, 0xD6, 0x4A, 0xD0, 0x4B, 0xE7, 0x00, 0xD6, 0x49, 0xD0, 0x4B, 0xE7, 0x01, - 0xD6, 0x48, 0xD0, 0x4B, 0xE7, 0x02, 0xD6, 0x47, 0xD0, 0x4B, 0xE7, 0x03, 0xD6, 0x46, 0xD0, 0x4B, - 0xE7, 0x04, 0xD6, 0x45, 0xD0, 0x4B, 0xE7, 0x05, 0xD6, 0x44, 0xD0, 0x4B, 0xE7, 0x06, 0xD6, 0x43, - 0xD0, 0x4B, 0xE7, 0x07, 0xD6, 0x42, 0xD0, 0x4B, 0xE7, 0x08, 0xD6, 0x36, 0x5A, 0x4F, 0xF3, 0x00, - 0x56, 0xFD, 0x00, 0x56, 0xFC, 0x00, 0x5A, 0xC3, 0x00, 0x14, 0xFD, 0x00, 0x5A, 0xFC, 0x00, 0x58, - 0xC3, 0x00, 0x14, 0xFD, 0x00, 0x58, 0x7A, 0x00, 0x35, 0x27, 0x03, 0x7E, 0x40, 0xBE, 0x38, 0x39, - 0x3C, 0xFE, 0x00, 0x5A, 0x18, 0xFE, 0x00, 0x58, 0xF6, 0x01, 0x9C, 0x5A, 0x26, 0x4C, 0xEC, 0x00, - 0xC3, 0x02, 0x00, 0x18, 0xED, 0x00, 0xEC, 0x02, 0xC3, 0x02, 0x00, 0x18, 0xED, 0x02, 0xEC, 0x04, - 0xC3, 0x02, 0x00, 0x18, 0xED, 0x04, 0xEC, 0x06, 0xC3, 0x02, 0x00, 0x18, 0xED, 0x06, 0xEC, 0x08, - 0xC3, 0x02, 0x00, 0x18, 0xED, 0x08, 0xEC, 0x0A, 0xC3, 0x02, 0x00, 0x18, 0xED, 0x0A, 0xEC, 0x0C, - 0xC3, 0x02, 0x00, 0x18, 0xED, 0x0C, 0xEC, 0x0E, 0xC3, 0x02, 0x00, 0x18, 0xED, 0x0E, 0xEC, 0x10, - 0xC3, 0x02, 0x00, 0x18, 0xED, 0x10, 0xEC, 0x12, 0x20, 0x5E, 0xEC, 0x00, 0x04, 0x04, 0xC3, 0x02, - 0x00, 0x18, 0xED, 0x00, 0xEC, 0x02, 0x04, 0x04, 0xC3, 0x02, 0x00, 0x18, 0xED, 0x02, 0xEC, 0x04, - 0x04, 0x04, 0xC3, 0x02, 0x00, 0x18, 0xED, 0x04, 0xEC, 0x06, 0x04, 0x04, 0xC3, 0x02, 0x00, 0x18, - 0xED, 0x06, 0xEC, 0x08, 0x04, 0x04, 0xC3, 0x02, 0x00, 0x18, 0xED, 0x08, 0xEC, 0x0A, 0x04, 0x04, - 0xC3, 0x02, 0x00, 0x18, 0xED, 0x0A, 0xEC, 0x0C, 0x04, 0x04, 0xC3, 0x02, 0x00, 0x18, 0xED, 0x0C, - 0xEC, 0x0E, 0x04, 0x04, 0xC3, 0x02, 0x00, 0x18, 0xED, 0x0E, 0xEC, 0x10, 0x04, 0x04, 0xC3, 0x02, - 0x00, 0x18, 0xED, 0x10, 0xEC, 0x12, 0x04, 0x04, 0xC3, 0x02, 0x00, 0x18, 0xED, 0x12, 0xFC, 0x00, - 0x58, 0xC3, 0x00, 0x14, 0xFD, 0x00, 0x58, 0xFC, 0x00, 0x5A, 0xC3, 0x00, 0x14, 0xFD, 0x00, 0x5A, - 0x7A, 0x00, 0x35, 0x27, 0x03, 0x7E, 0x42, 0x4D, 0x38, 0x39, 0xF6, 0x01, 0x9E, 0xC1, 0x03, 0x24, - 0x04, 0xBD, 0x42, 0x4C, 0x39, 0xBD, 0x40, 0xBD, 0x39, 0x3C, 0xF6, 0x01, 0x8D, 0xCE, 0x15, 0x00, - 0xE7, 0x00, 0xF6, 0x01, 0x86, 0xE7, 0x19, 0xF6, 0x01, 0x87, 0xE7, 0x1A, 0xF6, 0x01, 0x88, 0xE7, - 0x1B, 0xF6, 0x01, 0x89, 0xE7, 0x16, 0xF6, 0x01, 0x8A, 0xE7, 0x17, 0xF6, 0x01, 0x8B, 0xE7, 0x18, - 0xF6, 0x01, 0x81, 0xB6, 0x01, 0x83, 0x3D, 0xD7, 0x2F, 0xF6, 0x01, 0x81, 0xB6, 0x01, 0x84, 0x3D, - 0xD7, 0x2E, 0xF6, 0x01, 0x82, 0xB6, 0x01, 0x83, 0x3D, 0xD7, 0x2D, 0xF6, 0x01, 0x82, 0xB6, 0x01, - 0x84, 0x3D, 0xD7, 0x2C, 0xF6, 0x01, 0x81, 0x86, 0x14, 0x3D, 0xDD, 0x2A, 0xF6, 0x01, 0x82, 0x86, - 0x14, 0x3D, 0xDD, 0x28, 0xF6, 0x01, 0x81, 0xFB, 0x01, 0x82, 0xD7, 0x27, 0x7D, 0x01, 0x84, 0x27, - 0x03, 0x78, 0x00, 0x27, 0xF6, 0x01, 0x92, 0xC1, 0x0A, 0x24, 0x05, 0xC6, 0x0A, 0xF7, 0x01, 0x92, - 0x38, 0x39, 0x01, 0x01, 0xCF, 0x7D, 0x01, 0x9F, 0x26, 0xFB, 0x39, 0x3C, 0x5F, 0xD7, 0x25, 0xF6, - 0x01, 0x93, 0x5A, 0x26, 0x02, 0x38, 0x39, 0xF6, 0x01, 0x90, 0x54, 0x54, 0xD7, 0x22, 0xB6, 0x01, - 0x8F, 0x5F, 0xFB, 0x01, 0x8E, 0x89, 0x00, 0xDD, 0x23, 0xDD, 0x39, 0x5F, 0xD7, 0x31, 0xD6, 0x3A, - 0xC4, 0x01, 0x4F, 0x83, 0x00, 0x01, 0x26, 0x03, 0x7C, 0x00, 0x25, 0x74, 0x00, 0x39, 0x76, 0x00, - 0x3A, 0xD6, 0x31, 0xC1, 0x08, 0x24, 0x13, 0xCE, 0x4F, 0xC0, 0x58, 0x3A, 0x4F, 0x5F, 0xED, 0x00, - 0xCE, 0x4F, 0xF0, 0xD6, 0x31, 0x58, 0x3A, 0x5F, 0xED, 0x00, 0x7C, 0x00, 0x31, 0xD6, 0x31, 0xC1, - 0x0A, 0x25, 0xCB, 0x38, 0x39, 0x3C, 0xCE, 0x00, 0x00, 0xE6, 0xFF, 0xC1, 0x01, 0x25, 0xFA, 0x5F, - 0xE7, 0xFF, 0xD6, 0x25, 0x27, 0x1F, 0xF6, 0x01, 0x8C, 0x5A, 0x26, 0x19, 0xF6, 0x01, 0x91, 0xCE, - 0x15, 0x00, 0xE7, 0x00, 0xC6, 0x03, 0xE7, 0x15, 0xCC, 0x15, 0xEC, 0xED, 0x1E, 0xCC, 0x01, 0x7D, - 0xED, 0x1C, 0x1C, 0x15, 0x80, 0xC6, 0x01, 0xCE, 0x16, 0x00, 0xE7, 0x00, 0x38, 0x39, 0x3C, 0xCC, - 0x05, 0xEC, 0xFD, 0x00, 0x5A, 0xDC, 0x23, 0xDD, 0x39, 0x5F, 0xD7, 0x3F, 0xD7, 0x31, 0xD6, 0x3A, - 0xC4, 0x01, 0x4F, 0x1A, 0x83, 0x00, 0x01, 0x26, 0x22, 0xD6, 0x31, 0x05, 0xF3, 0x00, 0x5A, 0x8F, - 0xEC, 0x00, 0xDD, 0x3B, 0x7D, 0x01, 0x9C, 0x26, 0x04, 0x04, 0x04, 0xDD, 0x3B, 0xCE, 0x4F, 0xD0, - 0xD6, 0x3F, 0x7C, 0x00, 0x3F, 0x58, 0x3A, 0xDC, 0x3B, 0xED, 0x00, 0x74, 0x00, 0x39, 0x76, 0x00, - 0x3A, 0x7C, 0x00, 0x31, 0xD6, 0x31, 0xC1, 0x0A, 0x25, 0xC4, 0x7D, 0x01, 0x9D, 0x27, 0x05, 0xFC, - 0x4F, 0xC0, 0x26, 0x02, 0x38, 0x39, 0xCC, 0x4F, 0xC0, 0xFD, 0x00, 0x5A, 0x5F, 0xD7, 0x31, 0x20, - 0x64, 0xFE, 0x00, 0x5A, 0xEC, 0x10, 0xDD, 0x3B, 0xD6, 0x20, 0x27, 0x0E, 0xEC, 0x00, 0xD3, 0x3B, - 0x04, 0xED, 0x00, 0x4F, 0x5F, 0xED, 0x30, 0x7A, 0x00, 0x20, 0xEC, 0x00, 0x93, 0x3B, 0xDD, 0x37, - 0xEC, 0x20, 0xD8, 0x38, 0x98, 0x37, 0xDD, 0x33, 0xDC, 0x37, 0xED, 0x20, 0xDC, 0x33, 0x2F, 0x13, - 0xD6, 0x22, 0x4F, 0x1A, 0x93, 0x37, 0x2D, 0x04, 0xD3, 0x37, 0x2C, 0x07, 0xEC, 0x30, 0xC3, 0x00, - 0x01, 0x20, 0x02, 0x4F, 0x5F, 0xED, 0x30, 0x83, 0x00, 0x03, 0x22, 0x08, 0xF6, 0x01, 0x90, 0x4F, - 0x93, 0x37, 0x2C, 0x03, 0x7C, 0x00, 0x21, 0x7C, 0x00, 0x31, 0xFC, 0x00, 0x5A, 0xC3, 0x00, 0x02, - 0xFD, 0x00, 0x5A, 0xD6, 0x31, 0xD1, 0x25, 0x25, 0x98, 0x38, 0x39, 0x3C, 0x37, 0x36, 0x30, 0x18, - 0xCE, 0x10, 0x00, 0x18, 0xE6, 0x03, 0xC4, 0x0C, 0xC1, 0x0C, 0x26, 0xF7, 0xE6, 0x01, 0x18, 0xE7, - 0x05, 0x38, 0x38, 0x39, 0x3C, 0xC6, 0x07, 0xCE, 0x12, 0x00, 0xE7, 0x00, 0xC6, 0x16, 0xE7, 0x00, - 0xC6, 0x25, 0xE7, 0x00, 0xC6, 0x34, 0xE7, 0x00, 0x38, 0x39, 0xD6, 0x27, 0xD7, 0x35, 0xF6, 0x01, - 0x9C, 0xD7, 0x3D, 0xC6, 0x01, 0xF7, 0x01, 0x9C, 0xBD, 0x42, 0x4C, 0xD6, 0x3D, 0xF7, 0x01, 0x9C, - 0x39, 0x3C, 0x5F, 0xD7, 0x3F, 0xD7, 0x41, 0x20, 0x73, 0xFE, 0x00, 0x54, 0x3A, 0xE6, 0x00, 0xD7, - 0x3D, 0xC1, 0x04, 0x23, 0x16, 0xC1, 0xFC, 0x24, 0x12, 0xFE, 0x00, 0x52, 0xD6, 0x3F, 0x7C, 0x00, - 0x3F, 0x3A, 0xD6, 0x3D, 0xE7, 0x00, 0x7C, 0x00, 0x41, 0x20, 0x51, 0xC6, 0x01, 0xD7, 0x3E, 0x20, - 0x35, 0xFE, 0x00, 0x54, 0x3A, 0xE6, 0x00, 0xD7, 0x3D, 0xC1, 0x04, 0x23, 0x26, 0xC1, 0xFC, 0x24, - 0x22, 0xD6, 0x3E, 0xC1, 0x01, 0x23, 0x2A, 0xFE, 0x00, 0x52, 0xD6, 0x3F, 0x7C, 0x00, 0x3F, 0x3A, - 0xC6, 0x01, 0xE7, 0x00, 0xFE, 0x00, 0x52, 0xD6, 0x3F, 0x7C, 0x00, 0x3F, 0x3A, 0xD6, 0x3E, 0xE7, - 0x00, 0x20, 0x19, 0x7C, 0x00, 0x3E, 0x7C, 0x00, 0x41, 0xD6, 0x41, 0xD1, 0x30, 0x25, 0xC2, 0x20, - 0xD0, 0xFE, 0x00, 0x52, 0xD6, 0x3F, 0x7C, 0x00, 0x3F, 0x3A, 0x6F, 0x00, 0xD6, 0x41, 0xD1, 0x30, - 0x25, 0x87, 0xD6, 0x3F, 0x4F, 0xF3, 0x00, 0x52, 0xFD, 0x00, 0x52, 0xD6, 0x30, 0x4F, 0xF3, 0x00, - 0x54, 0xFD, 0x00, 0x54, 0x38, 0x39, 0x3C, 0x3C, 0x30, 0xCC, 0x00, 0x64, 0xED, 0x00, 0x1A, 0xEE, - 0x00, 0x83, 0x00, 0x01, 0xED, 0x00, 0x18, 0x8C, 0x00, 0x01, 0x22, 0xF2, 0x38, 0x38, 0x39, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x39, 0x3C, 0x5F, 0xCE, 0x16, 0x00, 0xE7, 0x00, 0xF6, 0x01, 0x8C, 0xC1, - 0x01, 0x26, 0x05, 0xBD, 0x43, 0xAE, 0x20, 0x1F, 0x8D, 0xE5, 0xCE, 0x16, 0x00, 0x1F, 0x02, 0x01, - 0xF7, 0x8D, 0xDC, 0xCE, 0x16, 0x00, 0x1F, 0x02, 0x01, 0xF7, 0xC6, 0x01, 0xE7, 0x00, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x38, 0x39, 0x3C, 0x5F, 0xCE, 0x16, 0x00, 0xE7, 0x00, - 0xD7, 0x3F, 0x01, 0x1F, 0x02, 0x01, 0x05, 0x7C, 0x00, 0x3F, 0xD6, 0x3F, 0xC1, 0x03, 0x25, 0xF2, - 0x38, 0x39, 0x3C, 0x7D, 0x01, 0x8C, 0x26, 0x18, 0x7D, 0x01, 0x9B, 0x26, 0x09, 0xC6, 0x01, 0xCE, - 0x15, 0x00, 0xE7, 0x21, 0x8D, 0x99, 0xC6, 0x01, 0xCE, 0x16, 0x00, 0xE7, 0x00, 0xBD, 0x45, 0xF2, - 0x38, 0x39, 0x3C, 0x3C, 0x30, 0xCC, 0x07, 0x10, 0xFD, 0x00, 0x50, 0xD6, 0x27, 0x4F, 0xC3, 0x07, - 0x10, 0xFD, 0x00, 0x52, 0x4F, 0x5F, 0xDD, 0x33, 0xF3, 0x00, 0x52, 0x18, 0x8F, 0x18, 0xE6, 0x00, - 0xD7, 0x3D, 0xF1, 0x01, 0x92, 0x23, 0x13, 0x4F, 0xED, 0x00, 0xC6, 0xFF, 0xF0, 0x01, 0x92, 0x82, - 0x00, 0xA3, 0x00, 0x2F, 0x05, 0x7C, 0x00, 0x21, 0x20, 0x13, 0xD6, 0x3D, 0x5A, 0x26, 0x09, 0xDC, - 0x33, 0xC3, 0x00, 0x01, 0xDD, 0x33, 0x20, 0x08, 0xD6, 0x3D, 0x5C, 0x26, 0x03, 0x38, 0x38, 0x39, - 0xDC, 0x33, 0xC3, 0x00, 0x01, 0xDD, 0x33, 0x1A, 0x83, 0x02, 0x30, 0x2D, 0xBB, 0x20, 0xEE, 0x3C, - 0x0F, 0xBD, 0x40, 0x26, 0x0E, 0x5F, 0xF7, 0x01, 0x9F, 0xCE, 0x16, 0x00, 0xE7, 0x05, 0x5C, 0xE7, - 0x03, 0xC6, 0xFF, 0xE7, 0x04, 0xCE, 0x15, 0x00, 0xE6, 0x00, 0xC4, 0x80, 0xCA, 0x55, 0xF7, 0x01, - 0x9D, 0xCC, 0x00, 0x21, 0xBD, 0x45, 0x17, 0xBD, 0x45, 0xF2, 0xBD, 0x43, 0xAE, 0xBD, 0x43, 0x35, - 0xBD, 0x43, 0xB7, 0x5F, 0xCE, 0x16, 0x00, 0xE7, 0x00, 0xBD, 0x45, 0x30, 0x5F, 0xF7, 0x01, 0x9E, - 0xD7, 0x26, 0xF7, 0x01, 0x9D, 0xCE, 0x00, 0x00, 0xE7, 0xFF, 0x5F, 0xCE, 0x16, 0x00, 0xE7, 0x00, - 0xF6, 0x01, 0x85, 0xCE, 0x15, 0x00, 0xE7, 0x15, 0xCC, 0x09, 0x50, 0xFD, 0x00, 0x58, 0xCC, 0x0D, - 0xC0, 0xFD, 0x00, 0x56, 0xCC, 0x01, 0xA0, 0xFD, 0x00, 0x5A, 0xCC, 0x0D, 0xC0, 0xFD, 0x00, 0x54, - 0xCC, 0x07, 0x10, 0xFD, 0x00, 0x50, 0xD6, 0x27, 0x4F, 0xC3, 0x07, 0x10, 0xFD, 0x00, 0x52, 0x5F, - 0xD7, 0x21, 0x7D, 0x01, 0x9B, 0x26, 0x14, 0xF6, 0x01, 0x9D, 0x5A, 0x26, 0x0E, 0x7D, 0x01, 0x8C, - 0x26, 0x09, 0xBD, 0x45, 0xF2, 0x5F, 0xCE, 0x15, 0x00, 0xE7, 0x21, 0xBD, 0x43, 0xAE, 0xF6, 0x01, - 0x9D, 0x27, 0x49, 0x5A, 0x27, 0x0B, 0x5A, 0x27, 0x13, 0x5A, 0x27, 0x2A, 0x5A, 0x27, 0x2A, 0x20, - 0x99, 0xCE, 0x14, 0x00, 0x1D, 0x00, 0x80, 0xBD, 0x46, 0x5E, 0x20, 0x30, 0xD7, 0x26, 0x7D, 0x01, - 0x8C, 0x26, 0x07, 0xC6, 0xAF, 0xCE, 0x11, 0x00, 0xE7, 0x00, 0xC6, 0x01, 0xF7, 0x01, 0x9D, 0xC6, - 0x04, 0xD7, 0x20, 0x7E, 0x47, 0x26, 0xBD, 0x46, 0x5E, 0x5F, 0xCE, 0x11, 0x00, 0xE7, 0x00, 0x7F, - 0x01, 0x9D, 0xC6, 0x35, 0xCE, 0x10, 0x00, 0xE7, 0x05, 0x7E, 0x47, 0x26, 0xBD, 0x46, 0x11, 0xF6, - 0x01, 0x93, 0x5A, 0x26, 0x47, 0x7D, 0x01, 0x8E, 0x27, 0x0A, 0xF6, 0x01, 0x85, 0xC8, 0x01, 0xCE, - 0x15, 0x00, 0xE7, 0x15, 0xCC, 0x01, 0x7D, 0xCE, 0x15, 0x00, 0xED, 0x1C, 0xCC, 0x15, 0xEC, 0xED, - 0x1E, 0xF6, 0x01, 0x90, 0xE7, 0x19, 0xF6, 0x01, 0x91, 0xE7, 0x00, 0x1C, 0x15, 0x80, 0xCE, 0x00, - 0x00, 0xE6, 0xFF, 0xC1, 0x01, 0x25, 0xFA, 0x5F, 0xE7, 0xFF, 0xF6, 0x01, 0x8D, 0xCE, 0x15, 0x00, - 0xE7, 0x00, 0xF6, 0x01, 0x86, 0xE7, 0x19, 0xF6, 0x01, 0x85, 0xE7, 0x15, 0x5F, 0xCE, 0x16, 0x00, - 0xE7, 0x00, 0xF6, 0x01, 0x9E, 0xC1, 0x03, 0x23, 0x0B, 0xBD, 0x45, 0x46, 0xC6, 0x03, 0xF7, 0x01, - 0x9E, 0x7E, 0x47, 0x26, 0xCC, 0x01, 0x01, 0xCE, 0x15, 0x00, 0xED, 0x1C, 0xCC, 0x11, 0xA0, 0xED, - 0x1E, 0x1C, 0x15, 0x80, 0xCE, 0x00, 0x00, 0xE6, 0xFF, 0xC1, 0x01, 0x25, 0xFA, 0x5F, 0xE7, 0xFF, - 0x7D, 0x01, 0x84, 0x26, 0x03, 0x7E, 0x49, 0x15, 0xCE, 0x15, 0x00, 0x1C, 0x15, 0x04, 0xEC, 0x1E, - 0xD3, 0x2A, 0xED, 0x1E, 0x1C, 0x15, 0x80, 0xC6, 0x01, 0xCE, 0x16, 0x00, 0xE7, 0x00, 0xF6, 0x01, - 0x81, 0xD7, 0x35, 0xF6, 0x01, 0x83, 0xD7, 0x36, 0xBD, 0x43, 0x26, 0xD6, 0x2F, 0xF0, 0x01, 0x81, - 0xD7, 0x30, 0xBD, 0x45, 0x5D, 0xCE, 0x00, 0x00, 0xE6, 0xFF, 0xC1, 0x01, 0x25, 0xFA, 0x5F, 0xE7, - 0xFF, 0xBD, 0x46, 0x11, 0xC6, 0x01, 0xCE, 0x16, 0x00, 0xE7, 0x00, 0xF6, 0x01, 0x85, 0xC8, 0x01, - 0xCE, 0x15, 0x00, 0xE7, 0x15, 0xCC, 0x01, 0x41, 0xED, 0x1C, 0xEC, 0x1E, 0xD3, 0x2A, 0xED, 0x1E, - 0x1C, 0x15, 0x80, 0xF6, 0x01, 0x81, 0xD7, 0x35, 0xF6, 0x01, 0x84, 0xD7, 0x36, 0xBD, 0x43, 0x26, - 0xD6, 0x2E, 0xF0, 0x01, 0x81, 0xD7, 0x30, 0xBD, 0x45, 0x5D, 0xCE, 0x00, 0x00, 0xE6, 0xFF, 0xC1, - 0x01, 0x25, 0xFA, 0x5F, 0xE7, 0xFF, 0xBD, 0x46, 0x11, 0xCE, 0x15, 0x00, 0x1C, 0x15, 0x04, 0xEC, - 0x1E, 0xD3, 0x28, 0xED, 0x1E, 0x1C, 0x15, 0x80, 0x5F, 0xCE, 0x16, 0x00, 0xE7, 0x00, 0xF6, 0x01, - 0x82, 0xD7, 0x35, 0xF6, 0x01, 0x83, 0xD7, 0x36, 0xBD, 0x43, 0x26, 0xD6, 0x2D, 0xF0, 0x01, 0x82, - 0xD7, 0x30, 0xBD, 0x45, 0x5D, 0xBD, 0x44, 0x11, 0xF6, 0x01, 0x82, 0xD7, 0x35, 0xF6, 0x01, 0x84, - 0xD7, 0x36, 0xBD, 0x43, 0x26, 0xD6, 0x2C, 0x20, 0x41, 0xF6, 0x01, 0x85, 0xC8, 0x01, 0xCE, 0x15, - 0x00, 0xE7, 0x15, 0xCC, 0x01, 0x41, 0xED, 0x1C, 0xEC, 0x1E, 0xD3, 0x2A, 0xED, 0x1E, 0x1C, 0x15, - 0x80, 0xF6, 0x01, 0x81, 0xD7, 0x35, 0xF6, 0x01, 0x83, 0xD7, 0x36, 0xBD, 0x43, 0x26, 0xD6, 0x2F, - 0xF0, 0x01, 0x81, 0xD7, 0x30, 0xBD, 0x45, 0x5D, 0xBD, 0x44, 0x11, 0xF6, 0x01, 0x82, 0xD7, 0x35, - 0xF6, 0x01, 0x83, 0xD7, 0x36, 0xBD, 0x43, 0x26, 0xD6, 0x2D, 0xF0, 0x01, 0x82, 0xD7, 0x30, 0xBD, - 0x45, 0x5D, 0x7D, 0x00, 0x25, 0x27, 0x15, 0xF6, 0x01, 0x8C, 0x5A, 0x26, 0x0F, 0xCE, 0x00, 0x00, - 0xE6, 0xFF, 0xC1, 0x01, 0x25, 0xFA, 0x5F, 0xE7, 0xFF, 0xBD, 0x44, 0x4A, 0xF6, 0x01, 0x8D, 0xCE, - 0x15, 0x00, 0xE7, 0x00, 0xF6, 0x01, 0x9E, 0xC1, 0x03, 0x24, 0x15, 0xD6, 0x27, 0x4F, 0xC3, 0x07, - 0x10, 0xFD, 0x00, 0x52, 0xC6, 0xFF, 0xFE, 0x00, 0x52, 0xE7, 0x00, 0x7C, 0x01, 0x9E, 0x20, 0x75, - 0xC6, 0xFF, 0xFE, 0x00, 0x52, 0xE7, 0x00, 0xF6, 0x01, 0x9D, 0xC1, 0x01, 0x26, 0x67, 0xCE, 0x14, - 0x00, 0x1C, 0x00, 0x80, 0x7C, 0x00, 0x26, 0xBD, 0x46, 0x7E, 0xBD, 0x46, 0x45, 0x7D, 0x01, 0x8C, - 0x26, 0x1A, 0x5F, 0xD7, 0x3F, 0xCE, 0x16, 0x00, 0x1E, 0x02, 0x01, 0x05, 0x7C, 0x00, 0x21, 0x20, - 0x16, 0x7C, 0x00, 0x3F, 0xD6, 0x3F, 0xC1, 0x0A, 0x25, 0xEE, 0x20, 0x0B, 0xD6, 0x21, 0x27, 0x07, - 0xC6, 0x01, 0xCE, 0x16, 0x00, 0xE7, 0x00, 0xD6, 0x21, 0x26, 0x06, 0xD6, 0x26, 0xC1, 0xC8, 0x23, - 0x17, 0xCC, 0x00, 0x35, 0xBD, 0x45, 0x17, 0xBD, 0x45, 0xF2, 0xBD, 0x45, 0xF2, 0xBD, 0x45, 0xF2, - 0xD6, 0x26, 0x4F, 0xBD, 0x45, 0x17, 0xD6, 0x26, 0xC1, 0xC8, 0x22, 0x03, 0x7E, 0x47, 0x26, 0x5F, - 0xD7, 0x26, 0x7E, 0x47, 0x26, 0xBD, 0x46, 0x45, 0xCC, 0x00, 0x35, 0xBD, 0x45, 0x17, 0x7E, 0x47, - 0x26, 0xC6, 0xFF, 0xCE, 0x16, 0x00, 0xE7, 0x04, 0x3B, 0xCE, 0x11, 0x00, 0x1F, 0x00, 0x08, 0x03, - 0x1C, 0x00, 0x04, 0x1F, 0x00, 0x20, 0x03, 0x1C, 0x00, 0x20, 0x3B, 0xCE, 0x15, 0x00, 0x1C, 0x00, - 0x02, 0xCE, 0x00, 0x00, 0x6C, 0xFF, 0x3B, 0xCE, 0x14, 0x00, 0x1C, 0x00, 0x14, 0x3B, 0x5F, 0xCE, - 0x10, 0x00, 0xE7, 0x04, 0x3B, 0x5F, 0xCE, 0x13, 0x00, 0xE7, 0x01, 0x3B, 0x3B, 0x4F, 0xCE, 0x00, - 0x50, 0x20, 0x03, 0xA7, 0x00, 0x08, 0x8C, 0x00, 0x5C, 0x26, 0xF8, 0x8E, 0x00, 0xFE, 0xBD, 0x42, - 0x7B, 0x20, 0xFE, 0x3C, 0xCC, 0x44, 0x57, 0xCE, 0x00, 0x00, 0xED, 0x10, 0xCC, 0x44, 0x5F, 0xED, - 0x12, 0xCC, 0x44, 0x71, 0xED, 0x14, 0xCC, 0x44, 0x7D, 0xED, 0x16, 0xCC, 0x44, 0x84, 0xED, 0x18, - 0xCC, 0x44, 0x8B, 0xED, 0x1C, 0xC6, 0x03, 0xCE, 0x10, 0x00, 0xE7, 0x00, 0x5F, 0xE7, 0x01, 0xE7, - 0x02, 0xE7, 0x03, 0xE7, 0x04, 0xCE, 0x11, 0x00, 0xE7, 0x00, 0xE7, 0x01, 0xCC, 0x00, 0xFF, 0xED, - 0x02, 0xED, 0x04, 0x5F, 0xED, 0x06, 0xCE, 0x12, 0x00, 0xE7, 0x00, 0xC6, 0x04, 0xED, 0x01, 0x5F, - 0xCE, 0x13, 0x00, 0xE7, 0x01, 0xC6, 0x09, 0xE7, 0x03, 0xC6, 0x80, 0xCE, 0x14, 0x00, 0xE7, 0x00, - 0xC6, 0x50, 0xE7, 0x01, 0x5F, 0xED, 0x02, 0xE7, 0x04, 0xC6, 0x54, 0xCE, 0x15, 0x00, 0xE7, 0x00, - 0x5F, 0xE7, 0x15, 0x86, 0x02, 0xED, 0x1C, 0x4C, 0xED, 0x1E, 0xE7, 0x20, 0xCE, 0x16, 0x00, 0xE7, - 0x00, 0xE7, 0x01, 0xE7, 0x02, 0xE7, 0x03, 0xE7, 0x04, 0xE7, 0x05, 0x5C, 0xE7, 0x06, 0x5F, 0xE7, - 0x07, 0x07, 0x84, 0x7F, 0x06, 0x38, 0x39, 0x3C, 0x20, 0x77, 0xFE, 0x00, 0x5A, 0xEC, 0x00, 0xFE, - 0x00, 0x58, 0xED, 0x00, 0xFE, 0x00, 0x5A, 0xEC, 0x02, 0xFE, 0x00, 0x58, 0xED, 0x02, 0xFE, 0x00, - 0x5A, 0xEC, 0x04, 0xFE, 0x00, 0x58, 0xED, 0x04, 0xFE, 0x00, 0x5A, 0xEC, 0x06, 0xFE, 0x00, 0x58, - 0xED, 0x06, 0xFE, 0x00, 0x5A, 0xEC, 0x08, 0xFE, 0x00, 0x58, 0xED, 0x08, 0xFE, 0x00, 0x5A, 0xEC, - 0x0A, 0xFE, 0x00, 0x58, 0xED, 0x0A, 0xFE, 0x00, 0x5A, 0xEC, 0x0C, 0xFE, 0x00, 0x58, 0xED, 0x0C, - 0xFE, 0x00, 0x5A, 0xEC, 0x0E, 0xFE, 0x00, 0x58, 0xED, 0x0E, 0xFE, 0x00, 0x5A, 0xEC, 0x10, 0xFE, - 0x00, 0x58, 0xED, 0x10, 0xFE, 0x00, 0x5A, 0xEC, 0x12, 0xFE, 0x00, 0x58, 0xED, 0x12, 0xD6, 0x32, - 0x4F, 0x05, 0xF3, 0x00, 0x58, 0xFD, 0x00, 0x58, 0xFC, 0x00, 0x5A, 0xC3, 0x00, 0x14, 0xFD, 0x00, - 0x5A, 0xD6, 0x31, 0x7A, 0x00, 0x31, 0x5D, 0x26, 0x81, 0x38, 0x39, 0x3C, 0xF6, 0x01, 0x8D, 0xCE, - 0x15, 0x00, 0xE7, 0x00, 0xF6, 0x01, 0x86, 0xE7, 0x19, 0xF6, 0x01, 0x87, 0xE7, 0x1A, 0xF6, 0x01, - 0x88, 0xE7, 0x1B, 0xF6, 0x01, 0x89, 0xE7, 0x16, 0xF6, 0x01, 0x8A, 0xE7, 0x17, 0xF6, 0x01, 0x8B, - 0xE7, 0x18, 0xF6, 0x01, 0x81, 0xB6, 0x01, 0x83, 0x3D, 0xD7, 0x2B, 0xF6, 0x01, 0x81, 0xB6, 0x01, - 0x84, 0x3D, 0xD7, 0x2A, 0xF6, 0x01, 0x82, 0xB6, 0x01, 0x83, 0x3D, 0xD7, 0x29, 0xF6, 0x01, 0x82, - 0xB6, 0x01, 0x84, 0x3D, 0xD7, 0x28, 0xF6, 0x01, 0x81, 0x86, 0x14, 0x3D, 0xDD, 0x26, 0xF6, 0x01, - 0x82, 0x86, 0x14, 0x3D, 0xDD, 0x24, 0xF6, 0x01, 0x81, 0xFB, 0x01, 0x82, 0xD7, 0x23, 0x7D, 0x01, - 0x84, 0x27, 0x03, 0x78, 0x00, 0x23, 0x38, 0x39, 0x01, 0x01, 0xCF, 0x7D, 0x01, 0x9F, 0x26, 0xFB, - 0x39, 0xB6, 0x01, 0x8F, 0x5F, 0xFB, 0x01, 0x8E, 0x89, 0x00, 0xDD, 0x20, 0x5F, 0xD7, 0x22, 0xDC, - 0x20, 0xDD, 0x35, 0x5F, 0xD7, 0x2D, 0x13, 0x36, 0x01, 0x03, 0x7C, 0x00, 0x22, 0x74, 0x00, 0x35, - 0x76, 0x00, 0x36, 0x7C, 0x00, 0x2D, 0xD6, 0x2D, 0xC1, 0x0A, 0x25, 0xEA, 0x39, 0x3C, 0x37, 0x36, - 0x30, 0x18, 0xCE, 0x10, 0x00, 0x18, 0xE6, 0x03, 0xC4, 0x0C, 0xC1, 0x0C, 0x26, 0xF7, 0xE6, 0x01, - 0x18, 0xE7, 0x05, 0x38, 0x38, 0x39, 0x3C, 0xC6, 0x07, 0xCE, 0x12, 0x00, 0xE7, 0x00, 0xC6, 0x16, - 0xE7, 0x00, 0xC6, 0x25, 0xE7, 0x00, 0xC6, 0x34, 0xE7, 0x00, 0x38, 0x39, 0x3C, 0x3C, 0x30, 0xCC, - 0x00, 0x32, 0xED, 0x00, 0x1A, 0xEE, 0x00, 0x83, 0x00, 0x01, 0xED, 0x00, 0x18, 0x8C, 0x00, 0x01, - 0x22, 0xF2, 0x38, 0x38, 0x39, 0x01, 0x01, 0x01, 0x01, 0x01, 0x39, 0x3C, 0x5F, 0xCE, 0x16, 0x00, - 0xE7, 0x00, 0xF6, 0x01, 0x8C, 0xC1, 0x01, 0x26, 0x05, 0xBD, 0x41, 0xAB, 0x20, 0x1F, 0x8D, 0xE5, - 0xCE, 0x16, 0x00, 0x1F, 0x02, 0x01, 0xF7, 0x8D, 0xDC, 0xCE, 0x16, 0x00, 0x1F, 0x02, 0x01, 0xF7, - 0xC6, 0x01, 0xE7, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x38, 0x39, 0x3C, - 0x5F, 0xCE, 0x16, 0x00, 0xE7, 0x00, 0xD7, 0x3B, 0x01, 0x1F, 0x02, 0x01, 0x05, 0x7C, 0x00, 0x3B, - 0xD6, 0x3B, 0xC1, 0x03, 0x25, 0xF2, 0x38, 0x39, 0x3C, 0x0F, 0xBD, 0x40, 0x26, 0x0E, 0x5F, 0xF7, - 0x01, 0x9F, 0xCE, 0x16, 0x00, 0xE7, 0x05, 0x5C, 0xE7, 0x03, 0xC6, 0xFF, 0xE7, 0x04, 0xCE, 0x15, - 0x00, 0xE6, 0x00, 0xC4, 0x80, 0xCA, 0x55, 0xF7, 0x01, 0x9D, 0xCC, 0x00, 0x21, 0xBD, 0x41, 0xE0, - 0xBD, 0x42, 0x0F, 0xBD, 0x41, 0xAB, 0xBD, 0x41, 0x3E, 0xBD, 0x41, 0xB4, 0x5F, 0xCE, 0x16, 0x00, - 0xE7, 0x00, 0xBD, 0x41, 0xF9, 0x5F, 0xF7, 0x01, 0x9E, 0xCE, 0x00, 0x00, 0xE7, 0xFF, 0xF6, 0x01, - 0x85, 0xCE, 0x15, 0x00, 0xE7, 0x15, 0xCC, 0x09, 0x50, 0xFD, 0x00, 0x58, 0xCC, 0x01, 0xA0, 0xFD, - 0x00, 0x5A, 0xBD, 0x41, 0xAB, 0xBD, 0x42, 0x2E, 0x5F, 0xCE, 0x16, 0x00, 0xE7, 0x00, 0xCC, 0x01, - 0x01, 0xCE, 0x15, 0x00, 0xED, 0x1C, 0xCC, 0x11, 0xA0, 0xED, 0x1E, 0x1C, 0x15, 0x80, 0xCE, 0x00, - 0x00, 0xE6, 0xFF, 0xC1, 0x01, 0x25, 0xFA, 0x5F, 0xE7, 0xFF, 0x7D, 0x01, 0x84, 0x26, 0x03, 0x7E, - 0x43, 0xC2, 0xCE, 0x15, 0x00, 0x1C, 0x15, 0x04, 0xEC, 0x1E, 0xD3, 0x26, 0xED, 0x1E, 0x1C, 0x15, - 0x80, 0xF6, 0x01, 0x81, 0xD7, 0x31, 0xF6, 0x01, 0x83, 0xD7, 0x32, 0xBD, 0x40, 0xBA, 0xCE, 0x00, - 0x00, 0xE6, 0xFF, 0xC1, 0x01, 0x25, 0xFA, 0x5F, 0xE7, 0xFF, 0xF6, 0x01, 0x85, 0xC8, 0x01, 0xCE, - 0x15, 0x00, 0xE7, 0x15, 0xCC, 0x01, 0x41, 0xED, 0x1C, 0xEC, 0x1E, 0xD3, 0x26, 0xED, 0x1E, 0x1C, - 0x15, 0x80, 0xF6, 0x01, 0x81, 0xD7, 0x31, 0xF6, 0x01, 0x84, 0xD7, 0x32, 0xBD, 0x40, 0xBA, 0xCE, - 0x00, 0x00, 0xE6, 0xFF, 0xC1, 0x01, 0x25, 0xFA, 0x5F, 0xE7, 0xFF, 0xCE, 0x15, 0x00, 0x1C, 0x15, - 0x04, 0xEC, 0x1E, 0xD3, 0x24, 0xED, 0x1E, 0x1C, 0x15, 0x80, 0xF6, 0x01, 0x82, 0xD7, 0x31, 0xF6, - 0x01, 0x83, 0xD7, 0x32, 0xBD, 0x40, 0xBA, 0xCE, 0x00, 0x00, 0xE6, 0xFF, 0xC1, 0x01, 0x25, 0xFA, - 0x5F, 0xE7, 0xFF, 0xF6, 0x01, 0x82, 0xD7, 0x31, 0xF6, 0x01, 0x84, 0xD7, 0x32, 0xBD, 0x40, 0xBA, - 0xC6, 0x01, 0xCE, 0x16, 0x00, 0xE7, 0x00, 0xD6, 0x22, 0x26, 0x03, 0x7E, 0x44, 0x4B, 0xF6, 0x01, - 0x8C, 0x5A, 0x26, 0xF7, 0xF6, 0x01, 0x91, 0xCE, 0x15, 0x00, 0xE7, 0x00, 0xC6, 0x03, 0xE7, 0x15, - 0xCC, 0x15, 0xEC, 0xED, 0x1E, 0xCC, 0x01, 0x7D, 0xED, 0x1C, 0x1C, 0x15, 0x80, 0x20, 0x3B, 0xF6, - 0x01, 0x85, 0xC8, 0x01, 0xCE, 0x15, 0x00, 0xE7, 0x15, 0xCC, 0x01, 0x41, 0xED, 0x1C, 0xEC, 0x1E, - 0xD3, 0x26, 0xED, 0x1E, 0x1C, 0x15, 0x80, 0xF6, 0x01, 0x81, 0xD7, 0x31, 0xF6, 0x01, 0x83, 0xD7, - 0x32, 0xBD, 0x40, 0xBA, 0xCE, 0x00, 0x00, 0xE6, 0xFF, 0xC1, 0x01, 0x25, 0xFA, 0x5F, 0xE7, 0xFF, - 0xF6, 0x01, 0x82, 0xD7, 0x31, 0xF6, 0x01, 0x83, 0x20, 0x91, 0xCE, 0x00, 0x00, 0xE6, 0xFF, 0xC1, - 0x01, 0x25, 0xF7, 0x5F, 0xE7, 0xFF, 0xF6, 0x01, 0x8D, 0xCE, 0x15, 0x00, 0xE7, 0x00, 0xCC, 0x05, - 0xEC, 0xFD, 0x00, 0x5A, 0xDC, 0x20, 0xDD, 0x35, 0x5F, 0xD7, 0x3B, 0xD7, 0x2D, 0x13, 0x36, 0x01, - 0x18, 0xCE, 0x4F, 0xD0, 0xD6, 0x3B, 0x7C, 0x00, 0x3B, 0x58, 0x3A, 0x3C, 0xD6, 0x2D, 0x4F, 0x05, - 0xF3, 0x00, 0x5A, 0x8F, 0xEC, 0x00, 0x38, 0xED, 0x00, 0x74, 0x00, 0x35, 0x76, 0x00, 0x36, 0x7C, - 0x00, 0x2D, 0xD6, 0x2D, 0xC1, 0x0A, 0x25, 0xD5, 0xBD, 0x42, 0x62, 0xCC, 0x00, 0x35, 0xBD, 0x41, - 0xE0, 0x7E, 0x42, 0xC1, 0xC6, 0xFF, 0xCE, 0x16, 0x00, 0xE7, 0x04, 0x3B, 0xCE, 0x11, 0x00, 0x1F, - 0x00, 0x08, 0x03, 0x1C, 0x00, 0x04, 0x1F, 0x00, 0x20, 0x03, 0x1C, 0x00, 0x20, 0x3B, 0xCE, 0x15, - 0x00, 0x1C, 0x00, 0x02, 0xCE, 0x00, 0x00, 0x6C, 0xFF, 0x3B, 0xCE, 0x14, 0x00, 0x1C, 0x00, 0x14, - 0x3B, 0x5F, 0xCE, 0x10, 0x00, 0xE7, 0x04, 0x3B, 0x5F, 0xCE, 0x13, 0x00, 0xE7, 0x01, 0x3B, 0x3B, - 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x05, 0x0D, 0x09, 0x04, 0xA1, 0x01, 0x85, 0x01, 0x09, 0x22, 0xA1, 0x02, 0x09, 0x42, 0x15, 0x00, - 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x09, 0x32, 0x81, 0x02, 0x09, 0x47, 0x81, 0x02, - 0x95, 0x05, 0x81, 0x03, 0x75, 0x08, 0x09, 0x51, 0x95, 0x01, 0x81, 0x02, 0x05, 0x01, 0x26, 0xFF, - 0x7F, 0x75, 0x10, 0x55, 0x00, 0x65, 0x00, 0x09, 0x30, 0x35, 0x00, 0x46, 0x00, 0x00, 0x81, 0x02, - 0x09, 0x31, 0x45, 0x00, 0x81, 0x02, 0xC0, 0xA1, 0x02, 0x05, 0x0D, 0x09, 0x42, 0x15, 0x00, 0x25, - 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x09, 0x32, 0x81, 0x02, 0x09, 0x47, 0x81, 0x02, 0x95, - 0x05, 0x81, 0x03, 0x75, 0x08, 0x09, 0x51, 0x95, 0x01, 0x81, 0x02, 0x05, 0x01, 0x26, 0xFF, 0x7F, - 0x75, 0x10, 0x55, 0x00, 0x65, 0x00, 0x09, 0x30, 0x35, 0x00, 0x46, 0x00, 0x00, 0x81, 0x02, 0x09, - 0x31, 0x46, 0x00, 0x00, 0x81, 0x02, 0xC0, 0xA1, 0x02, 0x05, 0x0D, 0x09, 0x42, 0x15, 0x00, 0x25, - 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x09, 0x32, 0x81, 0x02, 0x09, 0x47, 0x81, 0x02, 0x95, - 0x05, 0x81, 0x03, 0x75, 0x08, 0x09, 0x51, 0x95, 0x01, 0x81, 0x02, 0x05, 0x01, 0x26, 0xFF, 0x7F, - 0x75, 0x10, 0x55, 0x00, 0x65, 0x00, 0x09, 0x30, 0x35, 0x00, 0x46, 0x00, 0x00, 0x81, 0x02, 0x09, - 0x31, 0x46, 0x00, 0x00, 0x81, 0x02, 0xC0, 0xA1, 0x02, 0x05, 0x0D, 0x09, 0x42, 0x15, 0x00, 0x25, - 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x09, 0x32, 0x81, 0x02, 0x09, 0x47, 0x81, 0x02, 0x95, - 0x05, 0x81, 0x03, 0x75, 0x08, 0x09, 0x51, 0x95, 0x01, 0x81, 0x02, 0x05, 0x01, 0x26, 0xFF, 0x7F, - 0x75, 0x10, 0x55, 0x00, 0x65, 0x00, 0x09, 0x30, 0x35, 0x00, 0x46, 0x00, 0x00, 0x81, 0x02, 0x09, - 0x31, 0x46, 0x00, 0x00, 0x81, 0x02, 0xC0, 0xA1, 0x02, 0x05, 0x0D, 0x09, 0x42, 0x15, 0x00, 0x25, - 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x09, 0x32, 0x81, 0x02, 0x09, 0x47, 0x81, 0x02, 0x95, - 0x05, 0x81, 0x03, 0x75, 0x08, 0x09, 0x51, 0x95, 0x01, 0x81, 0x02, 0x05, 0x01, 0x26, 0xFF, 0x7F, - 0x75, 0x10, 0x55, 0x00, 0x65, 0x00, 0x09, 0x30, 0x35, 0x00, 0x46, 0x00, 0x00, 0x81, 0x02, 0x09, - 0x31, 0x46, 0x00, 0x00, 0x81, 0x02, 0xC0, 0xA1, 0x02, 0x05, 0x0D, 0x09, 0x42, 0x15, 0x00, 0x25, - 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x09, 0x32, 0x81, 0x02, 0x09, 0x47, 0x81, 0x02, 0x95, - 0x05, 0x81, 0x03, 0x75, 0x08, 0x09, 0x51, 0x95, 0x01, 0x81, 0x02, 0x05, 0x01, 0x26, 0xFF, 0x7F, - 0x75, 0x10, 0x55, 0x00, 0x65, 0x00, 0x09, 0x30, 0x35, 0x00, 0x46, 0x00, 0x00, 0x81, 0x02, 0x09, - 0x31, 0x46, 0x00, 0x00, 0x81, 0x02, 0xC0, 0xA1, 0x02, 0x05, 0x0D, 0x09, 0x42, 0x15, 0x00, 0x25, - 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x09, 0x32, 0x81, 0x02, 0x09, 0x47, 0x81, 0x02, 0x95, - 0x05, 0x81, 0x03, 0x75, 0x08, 0x09, 0x51, 0x95, 0x01, 0x81, 0x02, 0x05, 0x01, 0x26, 0xFF, 0x7F, - 0x75, 0x10, 0x55, 0x00, 0x65, 0x00, 0x09, 0x30, 0x35, 0x00, 0x46, 0x00, 0x00, 0x81, 0x02, 0x09, - 0x31, 0x46, 0x00, 0x00, 0x81, 0x02, 0xC0, 0xA1, 0x02, 0x05, 0x0D, 0x09, 0x42, 0x15, 0x00, 0x25, - 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x09, 0x32, 0x81, 0x02, 0x09, 0x47, 0x81, 0x02, 0x95, - 0x05, 0x81, 0x03, 0x75, 0x08, 0x09, 0x51, 0x95, 0x01, 0x81, 0x02, 0x05, 0x01, 0x26, 0xFF, 0x7F, - 0x75, 0x10, 0x55, 0x00, 0x65, 0x00, 0x09, 0x30, 0x35, 0x00, 0x46, 0x00, 0x00, 0x81, 0x02, 0x09, - 0x31, 0x46, 0x00, 0x00, 0x81, 0x02, 0xC0, 0xA1, 0x02, 0x05, 0x0D, 0x09, 0x42, 0x15, 0x00, 0x25, - 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x09, 0x32, 0x81, 0x02, 0x09, 0x47, 0x81, 0x02, 0x95, - 0x05, 0x81, 0x03, 0x75, 0x08, 0x09, 0x51, 0x95, 0x01, 0x81, 0x02, 0x05, 0x01, 0x26, 0xFF, 0x7F, - 0x75, 0x10, 0x55, 0x00, 0x65, 0x00, 0x09, 0x30, 0x35, 0x00, 0x46, 0x00, 0x00, 0x81, 0x02, 0x09, - 0x31, 0x46, 0x00, 0x00, 0x81, 0x02, 0xC0, 0xA1, 0x02, 0x05, 0x0D, 0x09, 0x42, 0x15, 0x00, 0x25, - 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x09, 0x32, 0x81, 0x02, 0x09, 0x47, 0x81, 0x02, 0x95, - 0x05, 0x81, 0x03, 0x75, 0x08, 0x09, 0x51, 0x95, 0x01, 0x81, 0x02, 0x05, 0x01, 0x26, 0xFF, 0x7F, - 0x75, 0x10, 0x55, 0x00, 0x65, 0x00, 0x09, 0x30, 0x35, 0x00, 0x46, 0x00, 0x00, 0x81, 0x02, 0x09, - 0x31, 0x46, 0x00, 0x00, 0x81, 0x02, 0xC0, 0x05, 0x0D, 0x09, 0x54, 0x95, 0x01, 0x75, 0x08, 0x15, - 0x00, 0x25, 0x05, 0x81, 0x02, 0x85, 0x02, 0x09, 0x55, 0xB1, 0x02, 0xC0, 0x9C, 0x02, 0x00, 0x00, - 0x12, 0x01, 0x10, 0x01, 0x00, 0x00, 0x00, 0x08, 0x51, 0xC2, 0x01, 0x1C, 0x00, 0x01, 0x01, 0x02, - 0x03, 0x01, 0x00, 0x00, 0x09, 0x02, 0x22, 0x00, 0x01, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, - 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x09, 0x21, 0x00, 0x01, 0x00, 0x01, 0x22, 0x9C, 0x02, 0x07, - 0x05, 0x81, 0x03, 0x40, 0x00, 0x04, 0x00, 0x00, 0x04, 0x03, 0x09, 0x04, 0x10, 0x03, 0x4E, 0x00, - 0x55, 0x00, 0x56, 0x00, 0x4F, 0x00, 0x54, 0x00, 0x4F, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x03, 0x57, 0x00, 0x50, 0x00, 0x4D, 0x00, - 0x20, 0x00, 0x55, 0x00, 0x53, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1A, 0x03, 0x42, 0x00, 0x30, 0x00, 0x32, 0x00, 0x30, 0x00, 0x31, 0x00, - 0x30, 0x00, 0x30, 0x00, 0x38, 0x00, 0x30, 0x00, 0x35, 0x00, 0x31, 0x00, 0x34, 0x00, 0x00, 0x00, - 0xB0, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xB4, 0x03, 0x00, 0x00, 0xB6, 0x04, 0x00, 0x00, - 0x80, 0xBF, 0x00, 0x00, 0xB4, 0x03, 0x00, 0x20, 0x24, 0x1B, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, - 0x11, 0x45, 0x80, 0x51, 0x01, 0x16, 0x23, 0x1B, 0xB7, 0x32, 0x80, 0x19, 0x10, 0x4B, 0x10, 0x27, - 0x08, 0x21, 0x02, 0x3D, 0xFF, 0x10, 0x11, 0x47, 0x54, 0x38, 0x31, 0x58, 0x4E, 0x49, 0x5F, 0x31, - 0x52, 0x30, 0x35, 0x5F, 0x31, 0x38, 0x51, 0x13, 0x02, 0x04, 0x1D, 0x02, 0x58, 0x0A, 0x4D, 0x59, - 0x25, 0x26, 0x02, 0x08, 0x19, 0x22, 0x1A, 0x36, 0x88, 0x88, 0x88, 0x03, 0x13, 0x28, 0x0C, 0x01, - 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0xFF, 0x01, 0xF9, 0x10, 0x11, 0x04, 0x7B, - 0x3C, 0x64, 0x50, 0x02, 0x27, 0x08, 0x12, 0x3C, 0xBA, 0x28, 0x08, 0x01, 0x42, 0x23, 0xE8, 0x03, - 0x02, 0x82, 0x64, 0x32, 0x80, 0xB2, 0x08, 0x69, 0x0C, 0x32, 0x81, 0x02, 0x14, 0x40, 0x22, 0x05, - 0x23, 0xDD, 0x33, 0x73, 0x91, 0x32, 0x22, 0x01, 0x1A, 0xBD, 0x10, 0x91, 0x19, 0xD7, 0xB9, 0x10, - 0x19, 0x51, 0xAA, 0xC1, 0x10, 0x31, 0xAA, 0xD9, 0x10, 0x22, 0x0A, 0xAA, 0xD5, 0x10, 0x22, 0x0B, - 0xB3, 0x9D, 0x34, 0x1A, 0x06, 0x6C, 0x22, 0x49, 0x23, 0xE9, 0x48, 0x1A, 0x7D, 0x08, 0x11, 0x22, - 0x09, 0x9A, 0x15, 0x20, 0x1A, 0x20, 0x10, 0x9B, 0xDD, 0x4A, 0x10, 0x19, 0x50, 0xAA, 0xC1, 0x10, - 0x19, 0x50, 0xAA, 0xD9, 0x10, 0x19, 0xB0, 0x9A, 0xA5, 0x10, 0x23, 0x6F, 0x4B, 0x1A, 0xE1, 0x10, - 0x1A, 0x02, 0x38, 0x01, 0x60, 0x55, 0x82, 0x82, 0x82, 0x83, 0x04, 0x14, 0x0D, 0x08, 0x02, 0x00 diff --git a/include/linux/gt8110.h b/include/linux/gt8110.h deleted file mode 100755 index 3baf910f1085..000000000000 --- a/include/linux/gt8110.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2010 - 2011 Goodix, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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. - * - */ - -#ifndef _LINUX_GOODIX_GT8110_TOUCH_H -#define _LINUX_GOODIX_GT8110_TOUCH_H - -struct goodix_8110_platform_data { - uint32_t version; /* Use this entry for panels with */ - int reset; - int irq_pin; - int power_control; - int mode_check_pin; - int (*hw_init) (void); - int (*hw_exit) (void); -}; - -#endif /* _LINUX_GOODIX_TOUCH_H */ -